Mysql错误的字符串值

时间:2013-02-20 18:55:22

标签: php mysql

我在通过PHP向mysql db(版本5.0.83)添加一些文本时遇到了一个问题当我尝试添加包含土耳其语字符的文本时,Mysql会抛出错误“错误的字符串值”。让问题更有趣的是,如果文本字符串中有一个土耳其字符,Mysql会接受它,但如果字符串中的字符数多于一个则会出错。

出现此错误的可能原因是什么?

更新:

 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 ;

我正在尝试将文字添加到“category-title”

2 个答案:

答案 0 :(得分:0)

这似乎有效。

我已将列的字符集更改为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 ;

Turkish-compatible character sets

答案 1 :(得分:0)

如果你有多个字符,我发现php的 strtolower()函数会导致问题。使用 mb_strtolower 可以解决问题。