在Mysql数据库中执行函数报错: Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE

在MySQL数据库操作时遇到1267错误,涉及到gbk_chinese_ci和utf8_general_ci编码不匹配的问题。该错误通常由于数据库内部编码不统一引起。解决方案包括在查询时转换编码或通过命令行设置数据库、表、字段的字符集为同一编码,如gb2312_chinese_ci。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gb2312_chinese_ci,COERCIBLE) for operation ‘=’
在操作MySQL数据库时,报“
error code [1267];
在Mysql数据库中执行函数报错:
Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ‘like’

对于常见的乱码问题,有的在数据库本身已经为gbk或gb2312时候,但是查询出来却是乱码,这是因为mysql在连接的过程中还有道编码,因此将连接的编码设为gb2312或utf-8
即可,如:
jdbc:mysql://localhost:3306/ipanel?useUnicode=true&characterEncoding=UTF-8

最重要的是这个问题:
Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (gb2312_chinese_ci,IMPLICIT) for operation ‘=’
是数据库内部的编码不统一引起的:
gbk_chinese_ci,有的数据是gb2312_chinese_ci,因此解决此问题的核心就是将数据库所有的编码进行统一。

解决方案一:暂时
//恶心的gb2312不能使用,需要转utf-8再继续
$where = $where . iconv(“gb2312”,“utf-8”," and USER_NAME=’" . $uname . “’”);

解决方案二:
进入命令行模式,

如果MySQL数据库已经安装好,可以使用下列SQL命令查看MySQL当前的字符集设置:
mysql> SHOW VARIABLES L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值