服务器 频道

Mysql字符问题

  【IT168 服务器学院】在MYSQL数据库中,经常遇到字符问题,千奇百怪。我遇到的问题是:

  Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/brand/list.php on line 51
  SQL查询失败
  error:()Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation ''like''

  mysql4.1+php4.1.3

  原因:

  我在写一个查询的时候,用到了LIKE。要求是查询的内容有中文和英文,不区分大小写。开始时,用VARCHAR类型,在数据库下执行SQL查询语句没有任何问题。但用PHP写的页面中执行的时候,就出现了这样的错误:

   Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/brand/list.php on line 51
  SQL查询失败
  error:()Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation ''like''

  错误分析:

  从错误中,可以看到是字符引起的,(一直不明白为何在PHP下执行会有这样的问题。不过有时在命令下执行也会出这样的错误。LIKE命令对中文的支持不好。所以造成了这样的错误。曾经用了许多方法,都不行。

  错误解决:

  通过查阅资料,解决办法如下:

  1)、改变查询的关键字段类型为:varbinary类型。

  2)、转换为字符类型。方法:CONVERT(model USING latin1)。在简体中文下,支持不好,但对拉丁文却很好。
  

0
相关文章