2012年1月26日木曜日

PDO

Posted on 8:49 in ,
接続

文字コードの設定

try {
$pdo = new PDO($db_dsn,$db_user, $db_password,
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"
)
);
} catch (PDOException $e) {
die($e->getMessage());
}

推奨されないらしい

$pdo = new PDO(
'mysql:host=hostname;dbname=defaultDbName',
'username',
'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);

持続的な接続

検討中。

データベースサーバへの持続的な接続による恩恵をこうむる web アプリケーションは多いでしょう。持続的な接続は、スクリプトが 終了しても閉じられずにキャッシュされ、他のスクリプトが同じ内容の 接続を要求してきた際にそれが再利用されます。持続的接続の キャッシュにより、スクリプトがデータベースを使用するたびに 新しい接続を確立するオーバーヘッドを避けることができます。 それにより、結果として web アプリケーションを高速化できるように なります。

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
PDO::ATTR_PERSISTENT => true
));

今の所の接続案

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`",
PDO::ATTR_PERSISTENT => true
));

参考

SET NAMESは禁止

2 件のコメント

  1. このコメントは投稿者によって削除されました。

    返信削除
  2. SET NAMES も SET CHARACTER SET も同じです。
    http://qiita.com/mpyw/items/b00b72c5c95aac573b71

    返信削除