PHP逆引き大全 516の極意

データベースの極意 - Tips379 文字コードを指定する

登録タグ
PHP
Icon comment count 0
Icon stock count 0

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によるエスケープ処理が誤動作を起こす場合があるためです。

この方法を使う場合は、データベースも含めた

出典情報

Medium

PHP逆引き大全 516の極意

  • 著者: 大家 正登, 茂木 健一, 鮫島 康浩, 谷中 志織

コメント

    コメントはありません