使用bindValue方法時LIMIT子句出錯
嘗試實作分頁時,開發人員在使用bindValue方法時遇到SQL錯誤與LIMIT 子句。這個查詢拋出一個錯誤,指出單引號被加入到 LIMIT 部分的變數中。
經過進一步調查,開發人員發現與 PHP 中已記錄的已知錯誤 (bugid 44639) 存在潛在關係自 2008 年以來。此錯誤表明PDO 可能會自動向LIMIT 中的非字串變數添加引號
解決方案:
解決此問題的解決方案是在將值傳遞給綁定函數之前將其轉換為整數。透過此修改,SQL 語句將能夠正確解釋變數並執行查詢,而不會出現語法錯誤。更新後的程式碼片段如下圖所示:
$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);
以上是為什麼 PDO 為 LIMIT 子句變數添加引號以及如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!