1

PHPでPDOを使用するときに、長い道のりを歩き、prepareandbindを使用する場合は少し混乱します。

以下のコードでは、代わりにprepareを使用する必要がありますか?このコードを使用する場合、$ nameはエスケープされますか、それともmysql_real_escape_stringを使用する必要がありますか?

$stmt = $db->query("UPDATE matches SET playerStatus = 4  WHERE name='$name' ");

ありがとう

4

1 に答える 1

2

長い道のりを歩き、準備とバインドを使用するときは少し混乱しています

これは、堅牢で、ねじ込みにくく、読みやすく、保守しやすいアプローチです。それを「長い道のり」とは考えないでください。

以下のコードでは、代わりにprepareを使用する必要がありますか?

はい。バインドされた引数を許可するものを常に使用してください。

このコードを使用すると、$ nameはエスケープされますか?

書かれているように、質問のコードはエスケープされません$query。ストリングをマッシュアップしているだけです。データベースコードが、作成したSQLと安全でない外部データを知る方法はありません。

または、mysql_real_escape_stringを使用する必要がありますか?

バインドされた引数を許可するものを使用する必要があります。

于 2012-05-08T10:09:09.283 に答える