【PHP初学者必須】PHPとMySQLを連携する

世の中で言われいてるプログラミングは常にデータベースとセットです。

もちろんPHPも例外ではありません。

顧客管理システム、ECサイト、簡単なwebアプリ、全てがデータベースの存在無くして、成り立ちません。

しかし、今はフレームワークが充実しているため、そんなことを意識しなくても勝手にデータベースとの連携ができてしまいます。

ここで、

PHPは、どうやってデータベースと連携しているんだろうか

と疑問を持つことがとても大切です。

今日の記事は、

  • webアプリの本質を知りたい
  • PHPとデータベースってどうやってつながってるの?
  • PHPでMySQLのクエリはどうやって実行するの?

こんな方におすすめです。

それでは、一緒に学習していきましょう。

PHPとMySQLを連携する

早速連携していきましょう。

try {
        $db = new PDO('mysql:dbname=mydb;host=localhost;charset=utf8', 'root', '');
    } catch(PDOException $e) {
        echo 'DB接続エラー'. $e->getMessage();
    }

少し難しく感じますが、本質は以下です。

new PDO('mysql:dbname=mydb;host=localhost;charset=utf8', 'root', '');

※今回はlocalhost接続で、ユーザーがroot、passwordはなしです

PDOとは、PHP Data Objectの略で、データベースと接続するためのオブジェクトになります。

他にも書き方があるのですが、PDOはMySQL以外のデータベースでも接続可能なので、一番便利です。

その他の例外処理等はご自身で検索してみてください。

クエリを実行する

   $count = $db->exec('insert into my_items set maker_id=1, item_name="もも", price=210, keyword="缶詰, ピンク, 甘い"');
    echo $count ."件のデータを挿入しました";
    $records = $db->query('select * from my_items');
    print_r(get_class_methods($records));
    while ($record = $records->fetch()) {
        print($record['item_name']. "\n");
    }

もしMYSQLの構文が分からない場合は、ご自身で検索するか、【webアプリ初学者必見】MYSQLでデータベースを作成するをご参考ください。

クエリの実行はデータベースオブジェクトに定義されている以下2つのメソッドがあります。

1. execメソッド

$db->exec('insert into my_items set maker_id=1, item_name="くり", price=50, keyword="茶色');

execメソッドは、返り値がレコード数になります。

2. queryメソッド

$db->query('select * from my_items');

queryメソッドは、返り値が保存された内容、もしくは、取り出したい情報一覧になります。

今回の場合は、my_itemsテーブルの登録情報全てをselect文を使用して取り出しています。

まとめ

 new PDO('データベースへの接続情報', 'ユーザー', 'パスワード');
  • PDOは、多くのデータベースと接続可能なため便利
データベースオブジェクト->exec('sql文');
  • 返り値がレコード数
データベースオブジェクト->query('sql文');
  • 返り値がレコード情報

これが書けるだけで、フレームワークの本質の一部が理解できます。

初学者から脱出できるように、がんばっていきましょう。

参考:

PHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門

コメント

Comments are closed.