- ベストアンサー
PHP+MySQLでの検索処理について
PHP+MySQLで部分一致検索の処理を作成しているのですが ある文字は正常に検索できてある文字は正常に検索できていないといった文字によって動きが異なります。 原因が不明なのでどなたか教えてください。 ちなみに検索文を作成する時は「mb_convert_encoding」を使用して入力された文字を「SJIS」⇒「UTF8」に変換しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
PHPとかMySQLの世界は、基本はEUC-JPですね。 UTF-8で処理したい場合は、周辺の環境設定がどうなっているのか 確認し、必要に応じて修正する必要があります。 まずはphpinfo()で環境を確認してみてはどうでしょう。
その他の回答 (2)
- fire--
- ベストアンサー率49% (146/293)
答える側は、この掲示板の情報のみしかわかりません。あなたのプログラムのソースも見えないし、どう「動きが異なる」のか、またエラーメッセージが出ているのか/いないのか、出ているのならどんなメッセージが出ているのかも判りません。 phpinfo()で判るmb環境とかソースとかが出てくれば、答えてくれる人も出てくるかもしれません。
お礼
ありがとうございます。 もう少し情報をまとめて再度質問させて頂きます。
- saintandre
- ベストアンサー率31% (194/607)
原因はUTF-8よりもSJISだとおもいます。 PHPとMySQLのバージョンとソースを見てみないことにはなんとも言えませんが 5Cコード含みの文字、通称「馬鹿文字」を使用した場合に起こるのではないでしょうか? 不具合が以下の文字を使用した場合に起こっているのではないかどうか調べてみてください。 ―,ソ,Ы,IX,噂,浬,欺,圭,構,蚕,十,申,曾,箪,貼,能,表,暴,予,禄 兔,喀,媾,彌,拿,杤,歃,濬,畚,秉,綵,臀,藹,觸,軆,鐔,饅,鷭,偆,砡
補足
有難うございます。 PHPのバージョンは4.4.2で、 MySQLのバージョンは4.0です。 教えて頂いた文字以外にもカナ文字でも 正常に検索されませんでした。
補足
ありがとうございます。 DB登録時はUTF8で登録しております。 検索字には検索条件を「mb_convert_encoding」で 「SJIS」⇒「UTF8」にエンコードしておりますが 他にどこの環境設定が必要でしょうか?