mysql:12562
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Thu, 15 Dec 2005 00:49:46 +0900
Subject: [mysql 12562] Re: Charset sjisの場合の0x5c文字列の処理
とみたです。 On Wed, 14 Dec 2005 13:48:17 +0900 島村 優太郎 <ml@xxxxxxxxxx> wrote: > SELECT * FROM `test` WHERE `id`='表\'; > DELETE FROM `test` WHERE `id`='%表\'; > INSERT `test` VALUE('テスト表\'); > > 等のようにシングルクォーテーションの前にエスケープ文字が入る文字 > とSyntax Errorになってしまいます。 > デフォルトのlatin1には正常に動作するのですが、sjisの > charsetの時のみこのエラーがでてしまいます。 sjis の時は「表」「\」「'」と解釈されるので、文法エラーになります。 latin1 の時は 0x5c「\\」「'」と解釈されるのでエラーにならないのでしょう。 > PHPから使用するときにはmysql_real_escape_stringでエスケー > プするため能,貼等の0x5c文字が最後に来た問い合わせが > 実行できません。 PHP は詳しくないのですが、C API での mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "sjis") 相当のことを行なえば良いような気がします。 -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
12559 2005-12-14 13:48 [島村 優太郎 <ml@xxxx] Charset sjisの場合の0x5c文字列の処理 12560 2005-12-14 14:19 ┣["片寄白王" <katayose] -> 12562 2005-12-15 00:49 ┣[とみたまさひろ <tomm] 12563 2005-12-15 09:22 ┗[Yukitaka Ohmura <oom] 12564 2005-12-15 09:58 ┗[島村 優太郎 <ml@xxxx]