PHPとMySQL4.0を使用したアプリのMySQL5への移行
次に手をつける予定の案件
1年以内に廃止予定だから、とりあえず動けばいいんだ。動けば。
結論
mysqldをujisで運用すれば何とかなるかも。
mysql> show variables like 'char%'; -----------------------------------------+ | server | client | -----------------------------------------| character_set_client | ujis | ujis | -----------------------------------------| character_set_database | ujis | ujis | -----------------------------------------| character_set_server | ujis | ujis | -----------------------------------------+
上記の環境を作ればよいのだから、
my.cnfを以下の設定にする。
[mysqld] character-set-server=ujis [mysql] default-character-set=ujis
PHP側のソースは一切いじらない。
理想
utf8でmysqldを動かしつつ、該当のデータベースだけをeucjpmsにして動かしたかったけれど、ソースコードに手を入れないと難しそうだから断念。
それ以上に
2byte文字の1byte目で切れているデータが入っている件
追記 2011/11/15
全然理解していなかった。
それぞれの文字コードをしっかり設定してあれば自動で変換してくれるみたいだ。
mysql> show variables like 'char%'; -----------------------------------------+ | server | client | -----------------------------------------| character_set_client | eucjpms| eucjpms| -----------------------------------------| character_set_database | utf8 | utf8 | -----------------------------------------| character_set_server | utf8 | utf8 | -----------------------------------------+
参考にしたサイト
SET NAMES のいらない生活 http://d.hatena.ne.jp/jrofbyr/20081228/p1
PHPでmysqlを適切に扱う方法 http://rhiz.jp/id/174.html