XAMPP によるPHPと MySQL の利用が日本語でうまくいかない件

サンプルデータベースの作成 - MySQLの設定と利用 - XAMPPの使い方
PHPからMySQLへ接続 - MySQLの設定と利用 - XAMPPの使い方

このサイトの通りにやったら、日本語が全部「?????」になって使えなかったので試行錯誤して使えるようにしてみた・ω・

sql
まず、照合時のコード latin (ラテン語圏)になってたので、 utf8_unicode_ciに変更

sql2
データの中身も utf8_unicode_ciになってなきゃまずいようだ・ω・
後から変更できるみたいなので、データベース空っぽにせずに修正できた。

データベースの中身は日本語が通るようになったけど、PHP で PDO使うと返り値が日本語が全部 ?????居なる現象が…。

<?php
$dsn = 'mysql:dbname=maindata;host=localhost';
$user = 'dbuser';
$password = 'unyounyo';

try{
    $dbh = new PDO($dsn, $user, $password,
      array(
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`"
      )

    );
    $sql = 'select * from userlist';
    foreach ($dbh->query($sql) as $row) {
        print($row['username'].',');
        print($row['data1'].',');
        print($row['data2'].',');
        print($row['information'].'<br />');
    }
}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}

$dbh = null;

?>

赤字の部分を追加することでうまくいった

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

なんか、今日は一日、こんなんで 格闘してた・ω・

おすすめ

コメントを残す

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