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

mysql:12527

From: 清水潔 <清水潔 <shimizu.kiyoshi@xxxxxxxxxx>>
Date: Thu, 01 Dec 2005 23:56:58 +0900
Subject: [mysql 12527] Re: INSERTで1064エラー

平野さん。

試してみたところ、こちらでも'でのエスケープならエラーが
発生しない事はわかりました。
なお型はtextです。

ただ、入力文字列をPHPのaddslashes関数でエスケープしているので
'だけ''に変えるというのは、後でなんだか判らないロジックが
入ってるという事になりそうなので、どうしようか迷ってます。

問題をもう少し絞りこみました。

(1)文字の組み合わせ
問題の発生する文字列の組み合わせを更に調べたところ「ら」の直後
に「'」がつながると、この2文字だけでも発生するというのが、わか
りました。この2文字の間に半角スペースが入れればOKでした。

(2)問題のありか
PHPからmysql関数を呼び出しての処理中に発生しているので、PHP側に
あるのか、mysql側にあるのか切り分け出来ないか考えてみました。
コマンドプロンプトからmysqlを呼び出して、INSERT文を実行した
ところ「ら'」が登録できました。PHPからmysqlに渡すときに発生して
いるのかと思いました。しかし、PHPの場合はEUC-JPのINSERT文
なのに対して、コマンドプロンプトの場合はSJISなので、これでは
切り分けにはならないのですよね、きっと。


バリュー 平野 wrote:
> 平野と申します。
> 
> 
>>以下のSQL文の実行で1064のエラーになってしまいます。
>>
>>INSERT INTO xps_whatsnew
>>VALUES(0,'manual','(desc_show)','','883840200','\'95から\'97の大会一覧 ');
>>
>>1064 : You have an error in your SQL syntax. Check the manual that
>>corresponds to your MySQL server version for the right syntax to use
>>near '97の大会一覧 ')' at line 1
> 
> 
>>なにか変えればよくなるのか全くわかりません。
> 
> 
> すみません、MySQLの事は全くの素人で、設定云々はわか
> らないのですし、試した環境は清水さんと全く違うので
> すが、視点を変えると言う意味で・・・。
> 
> ¥マーク(バックスラッシュ)でエスケープしている場
> 所を、シングルクォーテーションでエスケープする手は
> 如何でしょうか。
> 
> 型がわからなかったので、verchar で試してみました。
> 
> 
> SELECT version()
> version() 
> --------- 
> 5.0.16-nt 
> 
> 結果:1件 (0ms)
> 
> drop table qtest
> 実行しました。 (16ms)
> 
> create table qtest (fielda varchar(30))
> 実行しました。 (0ms)
> 
> INSERT INTO qtest VALUES('''95から''97の大会一覧')
> 結果: 1 件更新 (0ms)
> 
> INSERT INTO qtest VALUES('''97の大会一覧')
> 結果: 1 件更新 (0ms)
> 
> INSERT INTO qtest VALUES('''95から')
> 結果: 1 件更新 (0ms)
> 
> select * from qtest
> fielda               
> -------------------- 
> '95から'97の大会一覧 
> '97の大会一覧        
> '95から              
> 
> 結果:3件 (0ms)
> 
> 参考にならなかったらごめんなさい。
> 
> 以上です。よろしくお願い致します。
> 0--------1---------2---------3---------4---------5
> 株式会社バリューソフトウエア
> 
> 平野 源
> hirano@xxxxxxxxxx
> 
> ValueSQL -- For all SQL developers --  
> http://gwsrv.valuenet.co.jp/ValueSQL/pukiwiki.php
> 0--------1---------2---------3---------4---------5
> 
> 
> 


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

     12524 2005-12-01 00:36 [清水潔 <shimizu.kiyo] INSERTで1064エラー                      
     12526 2005-12-01 17:29 ┗[バリュー 平野 <hira]                                       
->   12527 2005-12-01 23:56  ┗[清水潔 <shimizu.kiyo]                                     
     12533 2005-12-02 12:12   ┗[バリュー 平野 <hira]                                   
     12534 2005-12-03 09:18    ┗[清水潔 <shimizu.kiyo]                                 
     12535 2005-12-03 11:21     ┗[清水潔 <shimizu.kiyo]