0017

MAMP+PHPmyAdmin環境でMySQLに挿入された中身が文字化けする場合の対処方法

MAMP+PHPmyAdmin環境でMySQLに挿入された中身が文字化けする場合の対処方法

2012.1.26

MAMP+PHPmyAdmin環境で、SQLによってINSERTした内容が文字化けする場合が頻繁に起こります。(個人的な環境ですが)

はっきりした原因がわからないのですが、解決方法を見つけたのでメモ。

確認環境

MySQLにutf-8だよと知らせてあげる

SQLの実行前に「mysql_set_charset(‘utf8’);」を行ってあげるとよいらしいです。

mysql_set_charset(‘utf8’);はPHP5.2.3以降とかかれていましたが、なぜか当方の環境でも使えました。(なぜだろう…)

//SQL文
$q = sprintf( "insert into bookmarks( 〜 ) values ( 〜 )", 〜 );

//本SQL文の実行の直前にこれを実行
mysql_set_charset('utf8');

//そのあとに本SQL文を実行
mysql_query($q) or die ("失敗".mysql_error());

mysql_query(SET NAMES ‘utf8’);

ちなみに、検索するとよく出てくる

mysql_query("SET NAMES 'utf8'");

は、セキュリティ的にあまりよろしくないそうです。