2013-02-20 72 views
1

我剛剛通過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 ; 

我想添加文本 「類別標題」

+0

你有保存文本中的'(撇號)嗎? – DevT 2013-02-20 18:56:37

+0

請添加您正在運行的示例查詢。還提供數據庫和表格架構。 – danielrsmith 2013-02-20 18:56:50

+0

@TilT:不,在文本中沒有apastrophe – mustafa 2013-02-20 19:02:48

回答

0

我發現PHP的用strtolower()函數引起的問題,如果你有多重咬字符。使用mb_strtolower將解決該問題。

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

相關問題