<分区>
我正在重新编写一些 PHP 代码以使用 PDO 进行数据库访问,但我遇到了“WHERE...IN”查询的问题。
我正在尝试从数据库中删除一些内容,这些内容基于检查了表单上的哪些项目。列表的长度和内容会有所不同,但对于这个例子,假设它是这样的:
$idlist = '260,201,221,216,217,169,210,212,213';
然后查询看起来像这样:
$query = "DELETE from `foo` WHERE `id` IN (:idlist)";
$st = $db->prepare($query);
$st->execute(array(':idlist' => $idlist));
当我这样做时,只有第一个 ID 被删除。 (我假设它会抛出逗号及其后的所有内容。)
我也试过让 $idlist
成为一个数组,但它并没有删除任何东西。
在 PDO 准备好的语句中使用项目列表的正确方法是什么?