首頁 >資料庫 >mysql教程 >為什麼 PDO 為 LIMIT 子句變數添加引號以及如何修復?

為什麼 PDO 為 LIMIT 子句變數添加引號以及如何修復?

Patricia Arquette
Patricia Arquette原創
2025-01-24 00:17:10313瀏覽

Why Does PDO Add Quotes to LIMIT Clause Variables and How Can I Fix It?

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

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