首頁  >  文章  >  後端開發  >  如何在 PDO 中正確執行具有多個 ID 的「WHERE...IN」查詢?

如何在 PDO 中正確執行具有多個 ID 的「WHERE...IN」查詢?

DDD
DDD原創
2024-10-30 08:03:02282瀏覽

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