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

mysql:7906

From: IWASAKI Dai <IWASAKI Dai <dai@xxxxxxxxxx>>
Date: Mon, 16 Jun 2003 18:12:53 +0900
Subject: [mysql 07906] Re: クォーテーションのある文字列の登録

いわさきです。

At Mon, 16 Jun 2003 17:57:34 +0900,
Shinichi Nouzumi wrote:
> > > $sql = sprintf("UPDATE usertbl SET name = '%s'",$sql);
> > > 
> > > この sql 文を実行したところ MySQL には、
> > > 能銀\" と、\ 文字が付加されてしまいます。
> > 
> > PHP上で、ここでの$sqlを表示させてみてください。
> 
> $str = '能銀"';
> echo mysql_escape_string($str);
> 
> とした場合、「能銀"」は正しく、クォートされ
> 「能\銀\"」
> と表示されています。

一つの変数 $str しか使っていないので、混乱しますが、見たかったのは
 $sql = sprintf("UPDATE usertbl SET name = '%s'",$sql);
を実行したあとなんですけど。

> そうですか・・・。
> 現在は、mysql_escape_string 関数を使わず
> 
> "UPDATE usertbl SET name = '能銀"'
> 
> とそのまま文字列を渡しても正しく登録されるので
> この関数を使っていません。

ええと、なんで mysql_escape_string のようなエスケープを
する関数が用意されているのかを考えてもらうと、そのやりかた
だとセキュリティホールが生ずる可能性があるので、避けた
ほうがよろしいかと。
# SQLインジェクションなど


---
To infinity and beyond...
いわさきだい  <dai@xxxxxxxxxx>




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

      7899 2003-06-14 12:15 [Shinichi Nouzumi <no] クォーテーションのある文字列の登録      
      7903 2003-06-16 16:09 ┗[IWASAKI Dai <dai@xxx]                                       
      7905 2003-06-16 17:57  ┗[Shinichi Nouzumi <no]                                     
->    7906 2003-06-16 18:12   ┗[IWASAKI Dai <dai@xxx]                                   
      7907 2003-06-16 18:32    ┗[Shinichi Nouzumi <no]