【发布时间】:2017-02-04 20:11:38
【问题描述】:
$s = "Update member_date" [snip]
$p = $pdo->prepare($s, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$p->execute();
这是否被认为是一个“准备好的”语句来证明可以免受 SQL 注入类型的攻击?
更新:
$member_id= htmlspecialchars($_GET['member_id']);
s1 = "
update member_date
set member_date= now()
where member_id= $member_id";
总体问题:“这是我应该如何格式化所有与 SQL 相关的新代码的格式吗?在阅读了我的(新)错误日志后,我终于从旧的 mysql 语句进行切换。我需要添加问题吗?为字符串等标记占位符,或者出于安全目的,我在第一行代码中的格式是否可以?我知道完成任务所需的 SQL,而不是 PDO 安全部分。”
【问题讨论】:
-
您应该分享实际的
update声明。这个概念看起来是对的,但魔鬼在细节中。 -
魔鬼在 [snip] :-)
-
我已经完成了。谢谢
-
是的,我知道。我已经读过很多遍了。它没有解释它是如何或为什么减少了我需要理解的部分。
-
因为注入绑定参数的SQL代码无法执行。
标签: mysql pdo prepared-statement