免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2656 | 回复: 3
打印 上一主题 下一主题

perl、mysql使用中一个错误“ Illegal mix of collations”(解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-12 15:49 |只看该作者 |倒序浏览
本帖最后由 ioerr 于 2010-11-22 11:37 编辑

前边数据库已经连接好
  1. my $stuNumber=3;   
  2. my $stuName ="张三"; #这里如果等于‘abc’就没事
  3. my $stuClass="3";

  4. #指定处理数据库时使用的字符集
  5. my $sth=$dbh->prepare('set character_set_results=gbk');
  6. $sth->execute();
  7. #$dbh->do("SET CHARACTER SET utf8");
  8.     $sth = $dbh->prepare("SELECT  COUNT(*) FROM stutable WHERE id=? AND stuName=? AND stuClass=?");
  9.     $sth->execute($stuNumber,$stuName,$stuClass);#这里出错,stuName的问题!!!

复制代码
数据库、表格、字段整理都是gbk的。
运行起来,关键字是英文就没事,中文就出错,提示错误:
DBD::mysql::st execute failed: Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for 19.

莫名了,半天了,憋死了,请高手帮忙

感觉是字符集的问题,可是搞不清具体是哪里。谢谢了orz

论坛徽章:
0
2 [报告]
发表于 2010-11-12 15:52 |只看该作者
数据库、表格、每一个字段整理都是gbk_chinese_ci。莫名了

论坛徽章:
0
3 [报告]
发表于 2010-11-13 17:17 |只看该作者
同志们,大家指点下,是不是字符集的问题,该怎么解决呢?

论坛徽章:
0
4 [报告]
发表于 2010-11-20 23:16 |只看该作者
自行解决了, character_set_result=gbk   还有就是得用这个select  * from users where binary name='张三'


搜了不少资料,反复尝试,ok了,不过原因还说不大清楚。有时间研究,先做东西去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP