带有“WHERE...IN”子句的 PDO 查询
在 PDO 查询中使用“WHERE...IN”子句时,开发人员经常遇到导致仅删除列表中第一项的问题。出现这种情况是由于准备好的语句中混合值(数字)与控制流逻辑(逗号)不兼容。要解决此问题,列表中的每个值都需要自己的占位符。
解决方案:
$idlist = array('260','201','221','216','217','169','210','212','213');
$questionmarks = str_repeat("?,", count($idlist)-1) . "?";
$stmt = $dbh->prepare("DELETE FROM `foo` WHERE `id` IN ($questionmarks)");
foreach ($idlist as $id) { $stmt->bindParam($i, $id); $i++; }
准备好语句并绑定参数后,执行查询将成功删除 $idlist 数组中指定的所有项目。
以上是如何在 PDO 准备语句中使用'WHERE...IN”删除多个项目?的详细内容。更多信息请关注PHP中文网其他相关文章!