phpmyadminの文字コード設定

phpからmysqlにデータを挿入してphpmyadminで確認すると、データが文字化けしている現象を解消した。

ちなみにこの状況でもphpファイルをSJISで作成すれば問題なく挿入、取り出しができていた。

でも今は基本的には全部utf8で作っとくのが無難らしいので、直す方法を調べた。



<環境>

・windowsXP

・xampp1.6.7

・php5.2.6



<対処方法>
mysqlの設定をコマンドプロンプトで確認するとlatin1とかいう謎の文字コードに設定されている。

多分xampp入れたときの初期設定がコレになっている。

このlatin1を全部utf8にすればいいということ。



そこで、xampp/mysql/bin/my.cnfを編集。windowsでは.cnfという拡張子は短縮ダイヤルと認識されてしまうらしく、下の画像のように謎のアイコンになっている。





このアイコンをサクラエディタとかにドラッグして開き、以下のコードを追加。



[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

skip-character-set-client-handshake



保存してmysqlを再起動すれば完了。







これですべてutf8で通り、phpmyadminの文字化けも無くなった。

ちなみに過去にSJISで作成したphpファイルは、

データベースに接続する処理の後に以下のように書くことでSJISでのデータの出し入れができた。



$db=DB::connect($dsn);

if(DB::isError($db)){

die("接続失敗:".$db->getMessage());

}

$sql = "SET NAMES SJIS";

$res =& $db->query($sql);

※PEAR使った場合の記述方法。

PHPやるならこの本が超オススメ!PHPの基礎から、mysqlとの連携まで網羅しています。しかも細かくセクション分けされていてサンプルコードも分かりやすいから、すぐに実践、吸収できます☆