我不知道如何标题这个问题,但是我开始意识到SQL注入的风险,我正在修改查询以使用预准备语句。
在原始查询中,我传递了一组id,以便在DB中查找:
AND item.id IN ($ids)
例如
$ids = "35,36,69,73,98,218,219,234,242";
现在我修改了查询,因此我将这些数据放入$params
,如下所示:
$params = [':ids' => $ids ];
并将查询中的行修改为:
AND item.id IN (:ids)
所以我执行这样的查询:
$query->execute($params);
然而,通过转储$query
我可以看到id没有传递,而这就是传递的:
IN (:ids)
显然没有找到任何东西。