我正在编写以下代码,我想知道在使用bindParam()时是否仍然需要转义我的变量。
$usernameCheckQuery = $db->getConnection()->prepare("SELECT username FROM users WHERE username = :username");
$usernameCheckQuery->bindParam(":username", $data['username'], PDO::PARAM_STR);
$usernameCheckQuery->execute();我在一些地方读到这是不必要的,而另一些地方说它是必要的。谢谢你的帮助。
发布于 2016-01-29 20:26:02
pdo正在进行转义,所以您不需要这样做。-您可能需要执行其他类型的验证,但这取决于您的代码。有关更长的答案,请参阅Are PDO prepared statements sufficient to prevent SQL injection?
https://stackoverflow.com/questions/35084469
复制相似问题