数据库查询时,查询数字或者英文可以,查询中文时出错:提示????????????:select * from szdbdb_userdata where        truename='????'

 

       Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='12670

 

解决办法:一般网上会说是编码问题,在配置文件my.ini修改数据库编码。当把所有编码设置为一致时还是不行,该考虑是数据库建立的时候选择的是什么。打开数据库可以看到。如果不同,就得重建数据库了。还有检查查询代码。

$sql="select * from {$pre}userdata where truename='$stext'";

$d1=$db->query($sql);

$num=mysql_num_rows($d1);

改为:

$query1=mysql_query("select * from {$pre}userdata where truename='$stext'");

$num=mysql_num_rows($query1);

可能是因为$d1=$db->query($sql);还需要转码导致错误。