| ライブラリ名 | メリット | デメリット |
| PEAR::DB | 普及率が高い | 開発中止 |
| PEAR::MDB/MDB2 | 多くのDB対応 スキーマを抽象化 | 処理が遅い |
| PEAR::DB_Objects | 多くのDB対応 O/Rマッピング | 処理が遅い |
| PDO | シンプル・処理は速い | 対応DB少ない・機能が弱い |
| Zend_Db | 処理が早い・機能が豊富 | 対応DBがやや少ない |
| dbx | 多くのDBに対応 | 機能がやや少ない |
$dsn = 'mysql:dbname=selfphp; host=127.0.0.1';
$usr = 'usr';
$passwd = 'password';
try {
$db = new PDO($dsn, $usr, $passwd);
print '接続に成功しました。';
$db = NULL;
} catch (PDOException $e) {
die("接続エラー:{$e->getMessage()}");
}
構文として、 次に外部化して使ってみましょう。
理由は毎回スクリプトに書くと大変ですし、
先頭に読み込んでおけば楽でメンテナンスがしやすいからです。
function getDb() {
$dsn = 'mysql:dbname=selfphp; host=127.0.0.1';
$usr = 'selfusr';
$passwd = 'selfpass';
try {
$db = new PDO($dsn, $usr, $passwd);
$db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$db->exec('SET NAMES utf8');
} catch (PDOException $e) {
die("接続エラー:{$e->getMessage()}");
}
return $db;
}
これで、DB接続を行うページの先頭で、
PDO PDO::__construct ( string dsn
[, string username
[, string password
[, array driver_options]]] )
指定されたデータベースへの接続を表すPDOインスタンスを生成します。
引数:
dsn データソース名(Data Source Name)またはDSN。データベースに接続
するために 必要な情報が含まれます。
username DSN文字列のユーザ名。このパラメータは、いくつかのPDOドラ
イバではオプションです。
password パスワード。DSN文字列で必要とされる場合に指定。
driver_options ドライバ固有の接続オプションを指定するキー=> 値
の配列。
戻り値:
成功時にPDOオブジェクトを返します。
次に明示的に接続を閉じる場合も確認しましょう。
$dsn = 'mysql:dbname=selfphp; host=127.0.0.1';
$usr = 'usr';
$passwd = 'password';
try {
$db = new PDO($dsn, $usr, $passwd);
print '接続に成功しました。';
$db = NULL;
} catch (PDOException $e) {
die("接続エラー:{$e->getMessage()}");
}
$db = null;
//この記事は編集中です。