使用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中文網其他相關文章!