我運行下面的代碼:PDO mysql的語法錯誤1064
$conn = new PDO(....);
.... pdo attributes ...
$limitvalue = 0;
$limit = 10;
$sql = $conn->prepare("SELECT * FROM table1 LIMIT ?, ?");
$sql->bindParam(1, $limitvalue, PDO::PARAM_INT);
$sql->bindParam(2, $limit, PDO::PARAM_INT);
$sql->execute();
,我也得到:
未捕獲的異常 'PDOException' 有消息「SQLSTATE [42000]: 語法錯誤或訪問衝突:1064您的SQL 語法中有錯誤;檢查對應於你的MySQL服務器版本 的手冊正確的語法使用近「NULL,10」位於第1' 行
它發生僅與此特定的查詢。其他一切都可以。
順便說一句:我知道它可能看起來很愚蠢,我做準備「代碼內」值的語句。但這僅僅是一個例子。實際上,這些值取決於頁碼,但在這裏並不重要 - 此查詢也會給出相同的錯誤。
如果有人有興趣,PHP的版本是:5.3.4RC2和MySQL的是:mysqlnd 5.0.7-dev的 - 091210 - $修訂:304625 $
感謝您的回答。它現在有效。但還有一個問題 - 爲什麼第二個參數($ limit)在沒有int轉換的情況下工作正常?我的意思是,如果我的SQL查詢就像'LIMIT X,Y'那麼爲什麼只有** X **需要你提到的轉換(因爲** Y **工作正常)?它是指錯誤:)? – Wysiwyf
我不知道。喜歡那些臭蟲:第。 – Arkh
哈哈,無論如何,謝謝。 – Wysiwyf