我的php文件设置的是utf8的,数据库连接过程也都是utf8。数据库用的校对编码及字符编码是utf8_unicode_ci。但是我在执行查询句 $sql = "select * from commodity where commodity_name like '%$newstr[0]%' or Sale_Address like '%$newstr[0]%' order by id desc ";时出现了Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation 'like'的报错。请问谁能猜到怎么回事,该怎么解决?

解决方案 »

  1.   

    你确认php文件设置的是utf8的,数据库连接过程也都是utf8。数据库用的校对编码及字符编码是utf8_unicode_ci。?
      

  2.   

    你的 $newstr 是从哪里来的?
    都是些什么内容
      

  3.   


    $newstr是带有查询条件的数组。假如$newstr[0]=="嗯";就这样一个简单的条件,也偶尔出现上诉错误,再强调下,是偶尔报错,偶尔执行又是对的。
      

  4.   

    $newstr[0]里地内容改变,造成编码不统一,你可以找一种出错的情况,把$sql输出看一下