PDOを生成する時はDSNのエイリアスを使うのが一番スマートだと思う。
一般的なPDOの生成方法
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
エイリアスを使うPDOの生成方法
php.iniに下記の記述をしておく。"pdo.dsn."の後ろがDSNのエイリアスになる。
[PDO]そうすると$dsnとして下記のようにエイリアスを指定できる。
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
$dsn = 'pdo_dsn';
$dbh = new PDO($dsn);
エイリアスを使うメリット
- 複数の環境(開発環境と本番環境とか)で別のDB接続情報を使う場合に、PHPソースを変更せずに済む。
- DB接続情報の定義場所が分かりやすい。
- ディレクトリセキュリティの掛け方によっては、DB接続情報を隠蔽できる。
MySQLの場合、ユーザー・パスワードはDSNに含められないようです。
参考:[ThinkIT] 第1回:PDOの概要 (3/3)、びーこん:PDO MySQL (PHP PECL) - livedoor Blog(ブログ))
エイリアスを使うデメリット
- DB接続情報を変更するたびにWebサーバの再起動が必要。
- DB接続情報の種類が多い場合に柔軟に対応できない。(dbnameだけ変えるとか。)命名規則を決めれば対応できるけど。
参考:PHP: PDO->__construct() - Manual
0 件のコメント:
コメントを投稿