Home >Backend Development >PHP Tutorial >CI框架下 Mysql存入汉字出现编码问题

CI框架下 Mysql存入汉字出现编码问题

WBOY
WBOYOriginal
2016-06-06 20:50:121040browse

在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 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 CI框架下  Mysql存入汉字出现编码问题

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

update:

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

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

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

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

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

见数据库相关CI手册

检查这一行 $db['default']['char_set'] = "utf8";

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn