1

PHPを介してmysqldb(バージョン5.0.83)にテキストを追加しているときに問題が発生しました。トルコ語の文字を含むテキストを追加しようとすると、Mysqlがエラー「不正な文字列値」をスローします。問題をさらに面白くするのは、テキスト文字列にトルコ語の文字が1つある場合、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」にテキストを追加しようとしています

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 に答える