PDO和SQL注入问题[重复]

问题描述 投票:0回答:1

很抱歉标题不清楚,但我是新来的。我徘徊在StackOverflow上,遇到一个答案,指出执行SQL查询时,永远不要直接馈送数据($db->query("SELECT * FROM users WHERE id LIKE $id")),而应该将其绑定在准备好的语句中($db->prepare("SELECT * FROM users WHERE id LIKE ?)->execute(array($id)))。

现在,我知道SQL注入,应该使用类似于后者的代码,但是我的问题是;是(总是)吗?喜欢,如果我有以下代码:$db->query("SELECT * FROM products WHERE id LIKE $id")

让我们假设

I

从我的代码中给出了$id,并且它不是用户的输入,我是否仍需要使用准备好的语句?还是我可以接受第一个示例?很抱歉标题不清楚,但我是新来的。我在StackOverflow上四处徘徊,遇到一个答案,指出执行SQL查询时,永远不要输入数据...
php mysql sql pdo sql-injection
1个回答
0
投票
这很安全,因为您的代码将$id设置为文字常量。无法使用不受信任的值。
© www.soinside.com 2019 - 2024. All rights reserved.