プログラミングノート

プログラミングの備忘録です

PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成 第1回

 PHP Data Objects (PDO) は、PHPの拡張モジュールで、 データベースにアクセスするための インターフェイスです。

 今回は、PDOを導入し、さらにPDOを利用するためにPDOインスタンスを作成します。

 

PDOの便利なところ

 

データベース固有の PDOドライバを使用します。それぞれのデータベースのPDOドライバの詳細は、PHP: PDO ドライバ - Manual をご覧ください。

 

1.PDOを導入

PHPに同梱されているデータベース固有のDLLを使うため、php.iniを編集してPHPを再起動します。

  1. データベース固有のDLLを指定するため、php.iniで、「extension=php_pdo_xxxxxx.dll」を指定します。(xxxxxxはデータベースにより異なります)
  2. php.iniを保存し、その後、PHPを再起動します。

 php.iniで、行頭の「;」に引き続きDLLがすでに記述されている場合があります。行頭の「;」はコメントマークですので、行頭の「;」を削除します。

(例)MySQLの場合「;extension=php_pdo_mysql.dll」と記述されているので、行頭の「;」を削除するだけです。

 

  • DLLファイルは、php.iniの extension_dir で指定したディレクトリに格納されている必要があります。
  • PHP 5.3 より前のバージョンでは、「extension=php_pdo.dll」を指定する必要があるそうです。さらに、データベース固有のDLLは、上記の指定に引き続いて指定する必要があるそうです。

 

2.PDO インスタンスの作成

 PDOを利用するため、はじめにPDOインスタンスを作成します。

 データベースのDNS、ユーザー、パスワードをPDOクラスのコンストラクタに渡して、PDOインスタンスを作成します。

 PDOインスタンスの作成方法を2種類書きます。データベースのDNS、ユーザー、パスワードは、ご利用環境に合わせてください。

 

1.PHPスクリプトDNSを指定する場合

PHPスクリプト

$dsn = 'mysql:dbname=testdb;host=testhost';
$user = 'testuser';
$password = 'testpass';
$dbh = new PDO($dsn, $user, $password);

 

2.php.iniのエイリアスDNSを指定する場合

php.iniの[PDO]に下の行を追加し保存しました。
pdo.dsn.testdsn="mysql:dbname=testdb;host=testhost"

 

PHPスクリプト

※ $dsnの値は「pdo.dns.xxxxxx="mysql:dbname・・・"」の「xxxxxx」部分となります。

$dsn = 'testdsn';
$user = 'testuser';
$password = 'testpass';
$dbh = new PDO($dsn, $user, $password);

 

php.iniを変更した場合は、phpの再起動が必要です。

$dnsの値を誤って指定すると「invalid data source name」エラーが発生しました。

 

 

 プリペアステートメントの使用については、

PHP Data Object (PDO)でプリペアステートメントを使う 第2回 - プログラミングノート をご覧ください。

 

トランザクションの利用については、PHP Data Object (PDO)でトランザクションを利用する 第3回 - プログラミングノート をご覧ください。

 

 

記事一覧

第1回 PHP Data Object(PDO)拡張モジュールの導入とPDOインスタンスの作成

第2回 PHP Data Object (PDO)でプリペアステートメントを使う

第3回 PHP Data Object(PDO)でトランザクションを利用する

 

参照

PHP: PDO - Manual