ci框架 乱码 mysql_CI框架下 Mysql存入汉字出现编码问题

在CI框架下存入汉字 报数据库错误

这是代码:

$comData = array(

'textArea' => $textArea,

'commentID' => $newComID,

'postID' => $newPostID,

);

$this->db->insert('COMMENTMETA',$comData);

下面是报错信息:

Error Number: 1366

Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95' for column 'textArea' at row 1

INSERT INTO COMMENTMETA (textArea, commentID, postID) VALUES ('测试', 8, 28)

Filename: F:\code\CI\system\database\DB_driver.php

Line Number: 330

数据库编码:

Mysql的编码都是utf8

43916fe6047aacf3975315a2c60a6fda.png

回复内容:

在CI框架下存入汉字 报数据库错误

这是代码:

$comData = array(

'textArea' => $textArea,

'commentID' => $newComID,

'postID' => $newPostID,

);

$this->db->insert('COMMENTMETA',$comData);

下面是报错信息:

Error Number: 1366

Incorrect string value: '\xE6\xB5\x8B\xE8\xAF\x95' for column 'textArea' at row 1

INSERT INTO COMMENTMETA (textArea, commentID, postID) VALUES ('测试', 8, 28)

Filename: F:\code\CI\system\database\DB_driver.php

Line Number: 330

数据库编码:

Mysql的编码都是utf8

43916fe6047aacf3975315a2c60a6fda.png

看下表是否为utf-8,这是在新建表的时候可选的属性。

update:

我仔细看了一下,你的model看起来是不符合CI规范的,使用了数组。正确的应该是:

$this->[键名] = $this->input->post('***');

另外你可以看看mysql的data文件夹里面的对应库的文件夹里面的配置文件,那个必须是utf-8.

你的截图只说明了你的mysql环境是utf8的,不能代表你插入的那个表以及那些字段也是utf8编码的,此外,检查下你文件的编码(或者说插入的数据的编码)是否是utf8

用iconv()转换一下插入字符串的编码

见数据库相关CI手册

检查这一行

$db['default']['char_set'] = "utf8";

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值