用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2869|回复: 4
收起左侧

[已解决] 保存中文问题!

[复制链接]
发表于 2010-11-2 15:10:40 | 显示全部楼层 |阅读模式
用CodeIgniter做了个网站,开始没有要求中文,现在试了下中文保存就会报错
错误如下:
A Database Error Occurred
Error Number: 1366
Incorrect string value: '\xE5\x95\x8A' for column 'title' at row 1
UPDATE `module` SET `title` = '啊', `audience` = 'Partner', `template` = 'Internal', `url` = NULL, `copyright_id` = '2' WHERE `id` = '4'

我已经把view页面设置<META http-equiv="Content-Type" content="text/html; charset=utf-8">
文件也都存为utf-8格式,mysql也是utf-8了
发表于 2010-11-2 16:48:06 | 显示全部楼层
贴一下入库代码看看。
 楼主| 发表于 2010-11-2 16:58:43 | 显示全部楼层
$datas = array(
'title' => $_POST['title'],
'audience' => $_POST['audience'],
'template' => $_POST['template'],
'url' => "http://",
'created_by' => $this->session->userdata('user_id'),
'created_at' => date("Y-m-d H:i:s"),
'copyright_id' => $copyrightId
);       
$this->db->insert("module", $datas);
大概就是这样的,我试过单独写个php文件能存中文到库里面
发表于 2010-11-2 21:54:19 | 显示全部楼层
很奇怪,看起来没什么问题。。。。。
我也是这么写的呀。。
你可以 print_r 一下 $datas
 楼主| 发表于 2010-11-2 22:10:56 | 显示全部楼层
哇哈哈,偶解决了,在mysql_driver.php文件里面
把return @mysql_query("SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'", $this->conn_id);
改成return @mysql_query("' COLLATE '".$this->escape_str($collation)."'", $this->conn_id);
就好了。。。也就是说是mysql_query("set names utf8")的问题,奇怪。。。貌似保存前又编码了一次存不进去了。。。可是这个是codeigniter里面默认的呀。。。

本版积分规则