2012.1.26
MAMP+PHPmyAdmin環境で、SQLによってINSERTした内容が文字化けする場合が頻繁に起こります。(個人的な環境ですが)
はっきりした原因がわからないのですが、解決方法を見つけたのでメモ。
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'");
は、セキュリティ的にあまりよろしくないそうです。