1

我刚刚通过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 ;

我正在尝试将文本添加到“类别标题”

4

2 回答 2

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 ;

土耳其语兼容的字符集

于 2013-02-20T19:57:39.917 回答
0

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

于 2013-04-01T07:47:18.030 回答