ホームページ > バックエンド開発 > PHPチュートリアル > CI框架下 Mysql存入汉字出现编码问题

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

WBOY
リリース: 2016-06-06 20:50:12
オリジナル
1048 人が閲覧しました

在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";

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート