6-2PDO(PHP Data Object)の利用Tips379 文字コードを指定する
Level1
PointDSNにcharsetを指定する
文字コードを指定して接続するには、PHP5.3.6以降であれば、PDOインスタンス生成時の第一引数であるDSN(データソース名)に、charset=utf8を指定します。
$pdo = new PDO("mysql:dbname=bookspdo;host=localhost;charset=utf8", $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ) );
しかし、本書ではPHP5.3.6よりも前のバージョンを利用しているため、下記のようにSET NAMESを使って、一旦接続した後に文字コードを指定しています。
$pdo->query("SET NAMES utf8");
ただし、この方法はセキュリティ上危険を伴う場合があります。指定したエンコードはMySQLに対してのみ通知され、PDO自身は指定したエンコードを認識していないため、PDOによるエスケープ処理が誤動作を起こす場合があるためです。
この方法を使う場合は、データベースも含めた
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録