首页  >  文章  >  后端开发  >  如何在 PDO 中正确执行具有多个 ID 的“WHERE...IN”查询?

如何在 PDO 中正确执行具有多个 ID 的“WHERE...IN”查询?

DDD
DDD原创
2024-10-30 08:03:02280浏览

How to Properly Execute

具有多个 ID 的“WHERE...IN”查询的正确 PDO 语法

根据 ID 列表删除数据库记录时,维护数据完整性至关重要。 PDO 遇到的一个常见挑战是执行具有多个值的“WHERE...IN”查询。

在您的情况下,查询无法删除除第一个 ID 之外的所有 ID,因为它将逗号分隔的列表视为单一值。要解决此问题,您需要为列表中的每个 ID 包含一个占位符。

解决方案:

要在 PDO 准备好的语句中正确使用 ID 列表,请按照以下步骤操作:

  1. 将逗号分隔的 ID 列表转换为数组,例如 $idlist = ['260', '201', '221', ...];。
  2. 创建一串问号,表示所需占位符的数量,例如 $questionmarks = str_repeat("?,", count($idlist)-1) 。 “?”;。这将为 10 个 ID 生成类似“?,,,,,,,,,”的字符串。
  3. 使用问号字符串准备 PDO 语句,例如 $stmt = $dbh->prepare( "DELETE FROM foo WHERE id IN ($questionmarks)");.
  4. 最后,循环遍历 ID 数组并将每个值绑定到其相应的占位符,例如,

    <code class="php">foreach ($idlist as $id) {
     $stmt->bindParam(..., $id);
    }</code>

按照以下步骤,您可以准确地执行多个ID的“WHERE...IN”查询并保持数据一致性。

以上是如何在 PDO 中正确执行具有多个 ID 的“WHERE...IN”查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn