[PHP-users 28636] utf8,MySQLでwhere句が効かない

キャスターマイルド caster_mild_49401219 @ hotmail.com
2006年 3月 6日 (月) 22:42:34 JST


こんばんは、キャスターマイルドです。

CentOS 4.2
PHP 4.3.9
MySQL 4.1.12
以上の環境で開発しています。

phpのソースは、utf-8(bom無し)です。
mysql_select_db後、
$strcodeSQL = 'SET NAMES utf8;';
mysql_query($strcodeSQL);
というSQL文を送っています。

さて、このとき、
phpから、sql文を打ってselectするとき、シンプルな
$sql = 'SELECT * FROM example';
というSQL文ならスムーズに結果が返ってくるのですが、

$sql = 'SELECT * FROM example WHERE column1 = \'test\'';
このようなWHERE文を入れると、何も結果が返ってきません。

このSQL文を、コマンドラインやphpMyAdmin上で実行すると、
思い通りの結果が返ってきます。

DBのCreate時のDefaultCharaSetは、
utf8_unicode_ci
utf8_general_ci
utf8_bin
の3種類を試しまたが、どれも思い通りの結果が返ってきません。

これらを、ソースをsjisやeucに変更し、
DBのCharaSetをそれぞれの文字コードで作成してやると
思い通りの結果が返ってきます。

解決方法をご存じの方がいらっしゃいましたら、
ご教授願います。

-- 
キャスターマイルド <caster_mild_49401219 @ hotmail.com>




PHP-users メーリングリストの案内