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.dllとphp_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) {
...... 例外発生時の処理 ......
}
以後は、データベースにアクセスして何を行うかによって、呼び出すメソッドやデータベースから得られる値の処理方法も変わってくる。