Mysql不正确的字符串值
问题描述:
我刚刚通过PHP向mysql数据库(版本5.0.83)添加一些文本时遇到了问题当我尝试添加包括土耳其字符的文本时Mysql抛出错误“不正确的字符串值”。让问题更有趣的是,如果文本字符串中有一个土耳其字符,Mysql会接受它,但如果字符串中的字符数不止一个,则会给出错误。Mysql不正确的字符串值
这个错误的可能原因是什么?
UPDATE:
CREATE TABLE IF NOT EXISTS `cat_communicative` (
`parent_id` int(10) NOT NULL auto_increment,
`child_of` tinytext,
`level_num` int(10) default NULL,
`category_title` tinytext,
`category_file_name` tinytext,
PRIMARY KEY (`parent_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
我想添加文本 “类别标题”
答
我发现PHP的用strtolower()函数引起的问题,如果你有多重咬字符。使用mb_strtolower将解决该问题。
答
这似乎是工作。
我已将字段的字符集更改为cp850,这是一种更为宽松的字符集,更重要的是接受土耳其字符。
CREATE TABLE IF NOT EXISTS `cat_communicative` (
`parent_id` int(10) NOT NULL auto_increment,
`child_of` tinytext,
`level_num` int(10) default NULL,
`category_title` tinytext CHAR SET cp850,
`category_file_name` tinytext,
PRIMARY KEY (`parent_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
你有保存文本中的'(撇号)吗? – DevT 2013-02-20 18:56:37
请添加您正在运行的示例查询。还提供数据库和表格架构。 – danielrsmith 2013-02-20 18:56:50
@TilT:不,在文本中没有apastrophe – mustafa 2013-02-20 19:02:48