MySQL 中預先準備語句的LIMIT 關鍵字
此問題解決了使用預備語句時LIMIT 子句無法如預期運作的問題使用MySQL 中的PDO 函式庫。
在提供的程式碼中snippet:
<pre class="brush:php;toolbar:false"> $comments = $db->prepare($query); /* where $db is the PDO object */ $comments->execute(array($post, $min, $max));
PDOStatement::execute 方法將參數 $min 和 $max 視為字串。因此,最終的 SQL 語句變成:
LIMIT '0', '10'
,這會導致語法錯誤,因為 MySQL 需要 LIMIT 子句的數值。
可能的解決方案:
要解決此問題,請考慮以下事項options:
手動綁定參數:
使用字串插值:
範例:
$query = sprintf('SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT %d, %d', $min, $max);
停用模擬準備:
以上是為什麼 LIMIT 不能與 MySQL 中的預先準備語句一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!