我正在编写以下代码,并想知道在使用bindParam()
时是否仍然需要转义我的变量。
$usernameCheckQuery = $db->getConnection()->prepare("SELECT username FROM users WHERE username = :username");
$usernameCheckQuery->bindParam(":username", $data['username'], PDO::PARAM_STR);
$usernameCheckQuery->execute();
我在某些地方读到过没有必要和其他地方说它是。谢谢你的帮助。
答案 0 :(得分:2)
pdo正在逃避,所以你不需要。 - 您可能需要进行其他类型的验证,但这取决于您的代码。如需更长的答案,请参阅 Are PDO prepared statements sufficient to prevent SQL injection?