提问人:DrFaraday 提问时间:2/27/2021 最后编辑:DharmanDrFaraday 更新时间:6/29/2022 访问量:84
什么时候应该使用 PDO::query?[复制]
When should one use PDO::query? [duplicate]
问:
我刚刚了解到,为了避免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注入的影响,那么有人使用查询方法吗?如果是这样,为什么?
答:
1赞
Acorn
2/27/2021
#1
几乎从不;你会知道你是否处于无法使用它的情况。
请注意,即使动态生成查询,仍应生成具有占位符和参数集的字符串,这些字符串彼此独立。
0赞
Oscar Soler
2/27/2021
#2
当使用查询是安全的(它不是sql注入攻击的目标)时,我会使用方法,例如:query
SELECT name FROM users
评论
:em
':em'
password_hash
。password
DROP TABLE
query
exec
quote
prepare
prepare
query
select * from users where password='$password'