select * from product where model like '%$key%'
这是我写的一条查询语句,当我$key='a' 的时候,查询怎么会中文的查询结果,只要包含‘工’字的结果都会显示出来!
然后我把语句改成这样:
$key = strtoupper($key);
select * from product where binary upper(model) like '%$key%'
然后再将$key='a'这样查询的中文不会显示出来,但像'sdf&fsd'这样的也会被显示出来!
我用的是UTF8,我觉得和编码的关系可能不大,我把查询的字串转换成二进制对比过,都是一样!
百思不得其解,望高人指点迷津!万分感谢!
这是我写的一条查询语句,当我$key='a' 的时候,查询怎么会中文的查询结果,只要包含‘工’字的结果都会显示出来!
然后我把语句改成这样:
$key = strtoupper($key);
select * from product where binary upper(model) like '%$key%'
然后再将$key='a'这样查询的中文不会显示出来,但像'sdf&fsd'这样的也会被显示出来!
我用的是UTF8,我觉得和编码的关系可能不大,我把查询的字串转换成二进制对比过,都是一样!
百思不得其解,望高人指点迷津!万分感谢!
select * from product where model like '%a%'
看看结果如何
肯定是在PHP出的毛病。
select * from product where model like '%$key%'
这个可以搜索中文
select * from product where binary model like '%$key%'
这个不可以搜索中文
谁能解释这个,问题就解决了
如果是编码问题,第一个应该就不能搜索才对呀!
需要调整一下数据库。