首頁  >  文章  >  資料庫  >  如何使用 PDO 正確綁定 WHERE IN 子句的參數?

如何使用 PDO 正確綁定 WHERE IN 子句的參數?

DDD
DDD原創
2024-11-17 13:38:02793瀏覽

How to Properly Bind Parameters for a WHERE IN Clause with PDO?

使用PDO 綁定WHERE IN 子句的參數

使用PDO 執行帶有WHERE IN 子句的查詢時,參數綁定可能不起作用正如預期的那樣。如提供的程式碼片段所示,將逗號分隔的值清單綁定到 :ids 參數會導致計數為 1,儘管數組中有多個值。

說明

問題在於 IN 子句期望值的格式如何。綁定數組時,PHP 將所有元素組合成一個字串,該字串被資料庫視為一個參數。這會導致執行以下查詢:

SELECT foo FROM bar WHERE ids IN ('1,2,3')

但是,IN 子句要求每個值都是單獨的參數:

SELECT foo FROM bar WHERE ids IN (1, 2, 3)

要解決此問題,必須手動將IN列表插入到查詢中string:

'SELECT foo FROM bar WHERE ids IN (' . $myArray .')'

或者,可以使用 bindParam 方法綁定單一值而不是陣列。

以上是如何使用 PDO 正確綁定 WHERE IN 子句的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn