什么时候应该使用PDO::query?



我刚刚了解到,为了避免SQL注入,最好使用准备/执行组合:

$pdo = new PDO ('mysql:host=something;port=something dbname=something','name','pswd');
$sql = "SELECT name FROM users WHERE email = :em AND password = :pw";
$stmt = $pdo -> prepare($sql);
$stmt -> execute (array());

而不是使用:

$stmt = $pdo -> query($sql);

问题是:

在什么情况下有人使用查询,因为我们有一个非常快速的方法来保护自己从SQL注入,有人使用查询方法吗?如果是,为什么?

几乎没有;你会知道在什么情况下你不能使用它。

请注意,即使您正在动态地生成查询,您仍然应该独立地生成带有占位符和参数集的字符串。

当使用查询是安全的(它不是sql注入攻击的目标)时,我会使用query方法,例如:SELECT name FROM users

最新更新