ひらい ぶらり Hi-Library

ぷろぐらみんぐについて。ときどきどうでもいいことについて。

MYSQLで文字化け

PEAR::DBから、PEAR::MDB2に移行したら、日本語が扱えなくなった。

Illegal mix of collations (utf8_general_ci,COERCIBLE) and (ujis_japanese_ci,IMPLICIT) for operation

こんな感じのエラー。
ちょいっと調べたところ

SET NAMES utf8;

こんな感じのクエリを発行してやればいいらしい。
MySQL4.1 以降からは自動で文字コードを変換してしまうせいらしいけど、とっくに4.1以降を使っていたのでDBが何かしてくれていたのか、MDB2がなにかしているのか、謎である。

参考:http://kuppo.sakura.ne.jp/php/db_set_names.php

追記:
 MDB2もDBも何も悪いことしてなかった。レンタルサーバを二つ借りてて、それを移行した結果新しいサーバのMySQLのヴァージョンが5だっただけだった。