>> PHP入門トップに戻る

PDO接続(SQLite,MySQL)

今回はPDO接続について説明します。

SQLiteではDBに接続するときはsqlite_open関数を使っています。
MySQLではDBに接続するときはmysql_connect関数を使って接続しています。

それぞれ関数も違って使い方も異なりますが、PDOでの接続は共通の関数を使って、
各データーベース管理システムへ接続することが出来ます。
PDOはPHP5.1以降で利用可能となっています。

あらかじめ、php.iniの

extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll

のセミコロンを外して有効にしといてください。
最初から有効になってる場合はそのままでいいです。

PDOで各データーベースへ接続するには、PDOクラスのコンストラクタに
適切な引数を指定してインスタンスを生成し、そのインスタンス経由で関数を実行し、
DBを操作します。
PDO PDO::__construct ( string dsn
                       [, string username 
                       [, string password 
                       [, array driver_options]]] )
第一引数はDSN(data source name)というデータソース名を指定します。
これはDB管理システムによって書式が違います。
第二、第三引数はDB接続時のユーザ名とパスワードです。
第四引数はほぼ使いません。

以降はSQLiteとMySQLへの接続について説明します。

SQLiteへの接続

PDOでSQLiteへ接続するには以下のようなDSNを指定し、PDOオブジェクトのインスタンスを生成します。
$dsn = 'sqlite:c:\test\sqlite.db';
$db = new PDO($dsn);
上記のように第一引数に指定するDSNは、
「sqlite:DBフルパス」
という表記で記載します。
SQLiteにはユーザやパスワードの設定がないので、PDOオブジェクトを生成する際には、
第二、第三引数は必要ありません。

MySQLへの接続

PDOでMySQLへ接続するには以下のようなDSNを設定し、オブジェクトを生成します。
$dsn = 'mysql:dbname=test;host=localhost';
$db = new PDO($dsn,ユーザ名,パスワード);
上記のようにDNSは、
「mysql:dbname=DB名;host=ホスト名;port=ポート番号」
になります。
ポート番号は省略可能です。
また、MySQLはユーザ名とパスワードが必要なのでオブジェクト生成時に指定する必要があります。

PDOの接続を閉じる

SQLiteやMySQLでDB接続を終了するときは、sqlite_closeや、
mysql_close関数を使ってましたが、PDOの場合は生成したインスタンスにNULLを入れることで
接続を閉じることになります。
$dsn = 'mysql:dbname=test;host=localhost';
$db = new PDO($dsn,ユーザ名,パスワード);
//接続を閉じる
$db = null;
このようにnullを入れるだけで接続終了になります。
>> 【PDO prepare プリペアドステートメントの使い方】に進む
>> PHP入門トップに戻る