PHP入門 | PDOを使ったデータベースアクセス | PDOオブジェクトを作成する

ドライバの読み込み

それでは実際にPDOを使ってMySQLへアクセスしてみよう。PDOを利用するには、PHPでPDO用のドライバプログラムが読み込まれていなければならない。ドライバの読み込みはphp.iniファイルに記述されている。XAMPPの場合は、XAMPPのインストールフォルダ内にあるphpフォルダにある。

extention=php_pdo.dll
extention=php_pdo_XX.dll

php.iniにはこのような内容があるはずなので検索してみよう。XXの部分にはデータベースの種類が指定される。MySQLの場合は、php_pdo_mysql_mysqlnd.dllphp_pdo_mysql_libmysql.dllという2つのDLLファイルを読み込む記述があるはずだ。行頭にコメントを表すセミコロン(;)が付いている場合は、それを削除する。これでサーバを再起動すればドライバを読み込める。

なお、現在のXAMPP 1.7.xでは、MySQLのドライバが標準で読み込まれるように設定されているため、php.iniを修正しなくてもよい。

PDOアクセスの基本整理

ではPDOを使ったデータベースアクセスについて整理していこう。まず行うことはPDOオブジェクトを作成することである。

$変数 = new PDO(サーバ指定, ユーザー名, パスワード);

このように作成する。1番目の引数にデータベースを指定する文字列を指定し、2番目と3番目の引数にアクセスするユーザー名とパスワードを指定する。ここで問題になるのは1番目の引数である。これは次のような形式で記述する。

"データベース種類:host=ホスト;dbname=データベース;charset=エンコーディング"

MySQLの場合、データベース種類には"mysql"を指定する。今回の例のように、localhostにあるmysampledataというデータベースへアクセスする場合は次のようになる。

"mysql:host=localhost;dbname=mysampledata;charset=utf8"

これでMySQLを使って特定のデータベースへアクセスするためのPDOオブジェクトを作成する。あとは、このオブジェクトで必要なメソッドを呼び出していくだけである。

PDOの作成にはもう1つ注意点がある。それは「例外が発生する可能性がある」という点だ。PDOを使ってデータベースにアクセスするときに問題が発生すると、PDOException例外が送出される。そのため、new PDOおよびデータベースアクセスは、実際には次のような形で記述する。

try {
    $変数 = new PDO(サーバ指定, ユーザー名, パスワード);
    ... $変数のメソッドを呼び出してデータベースにアクセスする ...
} catch (PDOException $e) {
    ...... 例外発生時の処理 ......
}

以後は、データベースにアクセスして何を行うかによって、呼び出すメソッドやデータベースから得られる値の処理方法も変わってくる。