スレッド表示 | フラット表示〕 全トピック 920 件中 225 番目 次≫ ≪前

MySqlの文字コードとPHPコードのSJIS

created: 2006-07-06 08:54 | modified: 2006-07-08 10:18 | reply: 1

[3136] MySqlの文字コードとPHPコードのSJIS

user: ゆういち | created: 2006-07-06 08:54
こんにちわ。 ご教授頂きたい事があり投稿いたしました。
こちらの環境は PHP4+Mysql4.0.26
サーバーはネット上のレンラルサーバ(アパッチ)です。
Mysqlの文字コードをEUC-JPにしております。
i-Mode対応にしたいためPHPのソースはShift-Jisにしております。

登録している店舗名のカナ検索をしたいと思い、以下のコードをPHPから発行しているのですが、結果が取得できません(該当なしになる)

SELECT * FROM store WHERE Enable ='TRUE' And ( Store_NameKna Like 'ハ%' Or Store_NameKna Like 'ヒ%' Or Store_NameKna Like 'フ%' Or Store_NameKna Like 'ヘ%' Or Store_NameKna Like 'ホ%')

デバッグとしてPHPコードにEcho $sql
としてブラウザに表示されたSQL分をコピーし、MySqlAdminのSQL画面に貼り付けてSQLを発行すると正常に値が返って来ます。

これは、PHPコードがSjisだからでしょうか?
これを回避する方法をご存知の方はご教授くださいませ
reply: 3141 返信 編集 削除

[3141] Re. MySqlの文字コードとPHPコードのSJIS

user: ゆうじ | created: 2006-07-08 10:18
こんにちわ。

PHPソースの文字コードが SJIS ならば、
'ハ','ヒ','フ','へ','ホ' なども SJIS なわけで、
Mysql が EUC-JP で保存されてるところに、
SJIS で問い合わせてるので、結果が得られないのでは。

SQL文に挿入するマルチバイト文字を、
あらかじめ EUC-JP に変換してみてはいかがでしょう。

$words = array('ハ','ヒ','フ','へ','ホ');
mb_convert_variables('EUC-JP', 'SJIS', $words);

$sql = "SELECT * FROM store WHERE
Enable ='TRUE' And (
Store_NameKna Like '". $words[0]. "%' Or
Store_NameKna Like '". $words[1]. "%' Or
Store_NameKna Like '". $words[2]. "%' Or
Store_NameKna Like '". $words[3]. "%' Or
Store_NameKna Like '". $words[4]. "%' )";
Parent: 3136  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 225 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑