PHP, PDOでMySQL接続時の文字コード設定

MySQL接続時に文字コード"utf-8"を指定したい – だって文字化けするんだもんの巻。

"SET NAMES `utf8`" は使っちゃダメよと大垣さんがおっしゃってたのでこれは使わない。
代わりに mysql_set_charset('utf8'); を使うらしいのだけどPDOでは使えない模様。

で次のようにして解決しました。

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());
}

Google先生にお聞きしてあっちこっちのサイトのコードを試したのでどちらが出典なのか記録を取っておらず不明です、ごめんなさい。

これだったかも
PHP Document
http://php.net/manual/ja/ref.pdo-mysql.php
Davy Defaud氏のコメント。

One thought on “PHP, PDOでMySQL接続時の文字コード設定

  1. たった今、PDO+MySQLの文字化けで悩んでいたところでした。
    スパッと解決できて大変助かりました!!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">