[前][次][番号順一覧][スレッド一覧]

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]