質問: php+mysqlでの検索について データベースの方で同じ質問をしましたが、カテゴリー的にはこちらの方が適当だと感じましたので、再度このカテゴリーで質問させていただきます。 以前、このカテゴリー内で「mysqlで違う検索結果が出てしまいます。」という質問をした者です。 再度同じような壁にぶつかってしまい悩んでいます。 具体的には以下のよう状態です。 テスト環境(会社のパソコン) php4.2.3 mysql4.0.5 検索結果~異常なし 公開環境(レンタルサーバー) php4.1.2もしくは4.2.1(サーバーによって違うということです) mysql3.23.46 検索結果~正しい検索結果が出ない となっています。 検索語がカタカナor漢字の場合は正常に動作するのですが、ひらがなだと「な」と「に」、「に」と「り」などがごちゃごちゃになるらしく、 例えば、検索語で「うに」と入れると「うに」と「うり」が検索結果として返ってくるのです。 文字コードの設定かとも思ったのですが、テストの環境の方では正しい検索結果が出ていますし、mysql内の文字コードもテスト環境はもちろんですが、レンタルサーバーの方でも「文字コードにeuc文字コードを利用して下さい」ということから、テスト環境と同じく default-character-setはujisになっていると思われます。 あとはphp・mysqlのバージョンの違いくらいしか思い当たるところがありません。 どなたかアドバイスいただけるとありがたいです。 よろしくお願いいたします。
回答: character-setが「latin」の場合は、確かに「な」と「に」、「に」と「り」が正常に認識されないようですね。実際、自分もキャラクターセットをlatinで確認しました。 テスト環境で正常に動作確認されて、レンタルサーバーでそうなるということは、レンタルサーバーのmysqlサーバーが「ujis」で動いてないかもしれませんね。 レンタルサーバーでssh接続可能なら >mysq show variables; で確認して見てください。character_setがujisなら問題ありません。sshがない場合はphpmyadminでも確認できます。トップページ(ようこそ画面)で「mysqlのシステム変数」をクリックしてみて下さい。