[PHP-users 4197] Re: 不正なSQL になる危険性について
Y.Inoue
php-users@php.gr.jp
Fri, 7 Dec 2001 14:01:51 +0900
井上です。
> ってな感じで、登録としているのですが、例えば、foo に ' が含まれたりする
と、
> INSERT INTO bar(foo) VALUES(''');
> 見たいにおかしなことになりますよね?
$sth = $dbh->prepare("INSERT INTO foo VALUES(?)");
$db->execute($sth, $foo);
などとすれば、PEARがエスケープしてくれます。
return str_replace("'", "\'", $string);
でエスケープしているようです。
PEARのDBについては、
http://vulcanonet.com/soft/?pack=pear_tut
が参考になりました。
addslashesを使うのであれば、
$sql = sprintf("INSERT INTO bar(foo) VALUES('%s')", addslashes($foo));
とすると、みやすくなります。
知っていると思いますが、SJISですと、表\示などとなってしまう
ことにも気をつけてくださいね。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
立命館大学 理工学部
情報学科 2回生 井上 陽平
inohei@ma.nasicnet.com
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/