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だっただけだった。