mysql 保存数据出现 Illegal mix of collations (gbk_chinese_ci,IMPLICIT)

mysql教程 保存数据出现 illegal mix of collations (gbk_chinese_ci,implicit)

其它这种问题很简单处理,就是页面提交的数据与mysql字段类型不一致影起的,只要把它们统一就可以了。
下现来看一下处理方法.

利用php教程函数 iconv()函数,
gb2312转换成utf-8

$utf=iconv('gb2312', 'utf-8', $_request['keyword']);

 

将字符串utf-8码转换为gb2312码

$str   = iconv("utf-8","gb2312//translit",$str);

方法二,修改数据库教程字段编码与你页面一致

修改表的编码:alter table `category` default character set utf8 collate utf8_bin

方法三

修改sql语句为如下格式:
    $sql="select * from {$tablepre}members where nickname='".$nickname."'";    修改为
    $sql="select * from {$tablepre}members where nickname=binary('".$nickname."')";   

时间: 2024-11-26 11:42:44

mysql 保存数据出现 Illegal mix of collations (gbk_chinese_ci,IMPLICIT)的相关文章

mysql 中关于:Error Code: 1267 Illegal mix of collations (gbk_chinese_ci,IMPLICIT) a

问题描述 mysql中关于:ErrorCode:1267Illegalmixofcollations(gbk_chinese_ci,IMPLICIT)and(utf8_general_ci,COERCIBLE)如何办,搞了很久,按照网上的经验,还是不行啊.

解决Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COER

部署完项目,测试一下,诶,数据出来了 没有多大问题(暗舒一口气).继续测吧,一点新建完了,报错了,看看什么错误 一看完了 java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 是这个错误 ,什么原因呢,第一次遇到. 头大了.去查文档说是:结果集中有两种字符集. 我晕了 ,怎么会这样呢,看看表结构,

mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '= 的解决

昨天把mysql里所有table的varchar字段的字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 , 结果有一个sql语句执行时,报错如下: Illegalmixofcollations(utf8_unicode_ci,IMPLICIT)and(utf8_general_ci,IMPLICIT)foroperation '= 观察了一下,这个sql使用了一个自定义的function,这个函数的入口参数为varchar,类似如下: CR

Illegal mix of collations (big5_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

解释: 非法的混合排序规则(big5_chinese_ci)和(utf8_general_ci)操作"like". 原本是单个字段查询数据的,现在是把所有的字段用一个搜索框来查询. 主要出问题是下列这个查询条件   两张表里 存在相同的ID_Card字段,但是两张表中的字段字符集和排序规则是不一样的. 一张表是:   另外一张表示:   改成utf8_general_ci就可以了! 主要是排序规则的问题! 排序规则:          

mysql提示:Illegal mix of collations for operation ‘UNION’

 语句很简单  代码如下   <?php $connection=mysql_connect("localhost","root","password"); //连接并选择数据库服务器 mysql_select_db("test",$connection); $query="select * from users where name='你好'"; $result=mysql_query($query

Illegal mix of collations (latin1

部署完项目,测试一下,诶,数据出来了 没有多大问题(暗舒一口气).继续测吧,一点新建完了,报错了,看看什么错误 一看完了 java.sql.SQLException: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 是这个错误 ,什么原因呢,第一次遇到. 头大了.去查文档说是:结果集中有两种字符集. 我晕了 ,怎么会这样呢,看看表结构,

Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)_Mysql

mysql 中常常出现对中文支持不友好的情况常见的错误 "Illegal mix of collations for operation" 下面我们规整一下 mysql 数据库中一共涉及到哪些字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的 character-set-database:数据库字符集 character-set-table:数据库表字符集 一般情况下只需要设置character-set-ser

mysql保存数据之存在就更,否则就保存数据

//如果不存在,则插入新数据  代码如下 复制代码 $sql = "INSERT INTO {$ecs->table('cat_lang')} (cat_id,lang_id,cat_name,keywords,cat_desc) VALUES({$cat_id},{$k},'{$val['cat_name']}','{$val['keywords']}','{$val['cat_desc']}') ON DUPLICATE KEY UPDATE cat_name='{$val['cat_

mysql保存数据提示:Out of range value for column错误

在我执行insert abc (a)values('bfdsafdsafdsafdsa') 时出现错误:#1264 - Out of range value adjusted for column 'a' at row 1 原因分析 我们从英文看出是因为字段长度不够用 解决办法 直接修改a字段的长度即可 还有一种情况会出现Out of range value adjusted for column 'ID' at row 1 如下面语句 MySQL升级到5.0.17后,在执行sql语句 INSE