mysql:5962
From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Mon, 19 Aug 2002 06:24:34 +0900
Subject: [mysql 05962] Re: Perl + MySQL でのメタ文字の扱い方
川合孝典です。 ちょっと気になったので。 ----- Original Message ----- From: "TATSUYA" <tatsuya@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Sunday, August 18, 2002 9:58 PM Subject: [mysql 05957] Re: Perl + MySQLでのメタ文字の扱い方 > S-Lines.netのTATSUYAです。 (中略) > > my($s)= "SELECT some_field FROM some_DB WHERE > > (a LIKE '?' and b LIKE '?')"; この部分は、 > > (a LIKE ? and b LIKE ?)"; とクォートがはずれていなければならないはずです。 http://theoryx5.uwinnipeg.ca/CPAN/data/DBI/DBI.html#Placeholders_and_Bind_Va lues また > 当方、 > $db->do("INSERT INTO $conf{'m_table'} SET no_res=''"); > このようにINSERTをしているため、すべてを上記のように変更することが大変な ため、 のように、テーブル名にはプレースホルダは使えません。 quoteでもクォートで囲まれますから、自前でエスケープするしかないでしょう。 MySQLの場合、prepareされたSQLに与えられたバインド値を quoteして埋め込んで発行するという仕組みなので、ごまかせるかも しれませんが。 #テーブル名をユーザ入力でっていうのが本当ならばですが。 =================================================== 川合 孝典 (Hippo2000) DBI日本語メーリングリスト管理人、Kansai.pm所属 kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/ 「MySQL&Perl Webアプリケーション開発」の発売中 http://member.nifty.ne.jp/hippo2000/mysqlperl.htm ===================================================
5957 2002-08-18 21:58 [TATSUYA <tatsuya@xxx] Re: Perl + MySQL でのメタ文字の扱い方 -> 5962 2002-08-19 06:24 ┗["KAWAI,Takanori" <GC] 5967 2002-08-19 13:24 ┗[SUGAWARA Hajime <sug]