0

ライブ前にチェックしたい。インターネットでさまざまなことを読んでいますが、これが私のコードを SQL インジェクションから完全に保護するかどうかを知りたいです。そうでない場合、何を追加または削除する必要がありますか?

$idtoapprove = mysql_real_escape_string($_POST['idtoapprove']);

$getcity = $conn->prepare('SELECT city, state FROM needs WHERE ID=:idtoapprove');
$getcity->bindParam(':idtoapprove', $idtoapprove);
$getcity->execute();

$cityrow = $getcity->fetch();
$needcity = $cityrow['city'];
$needstate = $cityrow['state'];

echo "$needcity, $needstate";
4

1 に答える 1

5

ここでは必要ありませんmysql_real_escape_string。実際には、完全に間違っており (別の非推奨のデータベース ライブラリからのものです)、データを損傷する可能性があります。(また、とにかくここでは効果がありません-mysql_real_escape_string()文字列をエスケープするためのものであり、整数には役に立ちません。)

PDO の準備済みステートメントで十分です。

于 2013-09-20T16:02:08.520 に答える