首先,是的,我已经看到了这是否 PDO 准备好的语句足以防止 SQL 注入?,但这还不足以回答我的问题,因为我的做法不同。
假设我有这样的代码:
$userid = $_SESSION['data']['id'];
$query = "SELECT * FROM table WHERE userid='$userid'";
$action = $db->prepare($query);
$action->execute();
它在技术上是安全的,因为用户无法影响$userid
,对吧?说我是否错了。
但是,如果代码如下所示:
$userid = $_GET['id'];
$query = "SELECT * FROM table WHERE userid='$userid'";
$action = $db->prepare($query);
$action->execute();
现在安全了吗?我找不到任何关于此的文档,可以让我在白底黑字。