こんにちは!ぐちです。
PDO
PDOとは「PHP Data Objects」の略でどのデータベースを使っているかを隠蔽してくれるものです。PDOを使うことでどのデータベースを利用する場合でも同じ関数を使うことができますので将来データベースを変更することがあってもPDOオブジェクトを作成する際に指定するパラメータを変更すればよいだけにすることができます。PDOはPHP5.1以降で利用できるようになっています。
DSN
データベースへ接続する際の情報(DataSourceName)を指定します。
MySQL
MySQLへ接続する際のDSNは下記の通りです。
mysql:dbname=db_name;host=host_name;port=port_no
PostgreSQL
PostgreSQLへ接続する際のDSNは下記の通りです。
pgsql:dbname=db_name;host=host_name;port=port_no
見ての通り先頭のデータベース名が違うだけ他は同じ書式となります。
PDOオブジェクト
下記のようにDSNとユーザー名とパスワードを指定してPDOオブジェクトを作成します。
$dsn = 'mysql:dbname=db_name;host=host_name;port=port_no'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);
PDOオブジェクトを作成する際はデータベースへの接続に失敗した場合に備えてtry catchで「PDOException」を例外処理しておきます。
$dsn = 'mysql:dbname=testdb;host=localhost'; $user = 'dbuser'; $password = 'dbpass'; try{ $dbh = new PDO($dsn, $user, $password); }catch (PDOException $e){ print('Connection failed:'.$e->getMessage()); die(); }
検索する
SQLクエリを実行する場合には下記のようにします。
$sql = 'select * from table_name'; $stmt = $dbh->query($sql);
その他クエリ
もちろん他にも挿入や更新、削除などがprepare
メソッドとexecute
メソッドを使い実行することができます。各データベースへの差分を吸収してくれるPDOを便利に使いこなしましょう。