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との連携まで網羅しています。しかも細かくセクション分けされていてサンプルコードも分かりやすいから、すぐに実践、吸収できます☆
ちなみにこの状況でも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との連携まで網羅しています。しかも細かくセクション分けされていてサンプルコードも分かりやすいから、すぐに実践、吸収できます☆