首頁 > 後端開發 > php教程 > 如何在 PDO 中將 LIMIT 與 MySQL 預先準備語句一起使用?

如何在 PDO 中將 LIMIT 與 MySQL 預先準備語句一起使用?

DDD
發布: 2024-11-30 16:37:10
原創
278 人瀏覽過

How to Use LIMIT with MySQL Prepared Statements in PDO?

MySQL 上有預先準備語句的LIMIT 關鍵字

嘗試使用LIMIT 關鍵字執行預先準備語句時,如果您執行下列操作,則可能會遇到錯誤:使用PDO(PHP 資料物件)庫。這是因為 PDO 將所有參數視為字串,這可能會導致在使用 LIMIT 參數的數值時出現解析錯誤。

要解決此問題,您可以考慮以下選項:

1。一對一綁定參數:

您可以手動將每個參數綁定到適當的類型,確保LIMIT 參數被視為整數:

$comments->bindParam(1, $post, PDO::PARAM_STR);
$comments->bindParam(2, $min, PDO::PARAM_INT);
$comments->bindParam(3, $min, PDO::PARAM_INT);
登入後複製

2。停用準備好的語句:

另一個選項是停用模擬準備,這可能導致參數被引用:

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
登入後複製

3。不要傳遞LIMIT 值:

您可以將LIMIT 值直接嵌入到查詢字串中,而不是將它們作為參數傳遞:

$query = sprintf('SELECT id, content, date
FROM comment
WHERE post = ?
ORDER BY date DESC
LIMIT %d, %d', $min, $max);
登入後複製

透過避免使用模擬準備或明確設定參數類型,可以在MySQL 中成功執行帶有LIMIT 關鍵字的準備語句。

以上是如何在 PDO 中將 LIMIT 與 MySQL 預先準備語句一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板