接続は、PDO 基本クラスのインスタンスを作成することによって確立されます。どのドライバーが使用されるかに関係なく、PDO クラス名が使用されます。
<?php$dbh = 新しい PDO('mysql:host=localhost;dbname=test', $user, $pass);?>
注:接続エラーがある場合、PDOException 例外オブジェクトがスローされます。
<?phptry { $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); foreach($dbh->query('SELECT * from FOO') as $row) { print_r ($row); } $dbh = null;} catch (PDOException $e) { print "エラー!: " . $e->getMessage() 。 "<br/>"; 死ぬ();}?>
データの接続が成功すると、PDO クラスのインスタンスがスクリプトに返されます。この接続は、PDO オブジェクトのライフサイクル中アクティブなままになります。
接続を閉じるには、オブジェクトを破棄して、オブジェクトへの残りの参照がすべて削除されるようにする必要があります。オブジェクト変数に NULL 値を割り当てることができます。
これを行わないと、PHP はスクリプトの最後で接続を自動的に閉じます。
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); // ここで接続を使用します // 実行が完了したので、ここで接続を閉じます $dbh = null ;? >
多くの Web アプリケーションは、データベース サービスへの永続的な接続を使用することで恩恵を受けます。
永続的な接続はスクリプトの終了後も閉じられず、同じ資格情報を使用する別のスクリプト接続要求が行われたときにキャッシュされて再利用されます。
永続的な接続キャッシュを使用すると、スクリプトがデータベースと通信する必要があるたびに新しい接続を確立するオーバーヘッドが回避されるため、Web アプリケーションが高速になります。
<?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array( PDO::ATTR_PERSISTENT => true));?>
注:永続的な接続を使用する場合は、PDO コンストラクターに渡されるドライバー オプション配列で PDO::ATTR_PERSISTENT を設定する必要があります。オブジェクトの初期化後にこの属性が PDO::setAttribute() で設定された場合、ドライバーは永続的な接続を使用しません。