保存中文问题!
用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了 贴一下入库代码看看。 $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文件能存中文到库里面 很奇怪,看起来没什么问题。。。。。
我也是这么写的呀。。
你可以 print_r 一下 $datas 哇哈哈,偶解决了,在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里面默认的呀。。。
页:
[1]