2011-11-09 40 views
-1

以下是錯誤想不通這個MySQL語法錯誤

你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本在第1行

這裏使用近「ASC順序LIMIT 100」正確語法手冊的準備傳遞給PDO查詢執行

SELECT * FROM web_menu_items WHERE menuId = ? ORDER BY order ASC LIMIT 100

這裏是傳遞給準備的變量執行

array(0 => "1")

這裏是表結構

CREATE TABLE IF NOT EXISTS `web_menu_items` (
    `id` int(11) NOT NULL auto_increment, 
    `menuId` int(11) NOT NULL, 
    `order` int(11) NOT NULL, 
    `requiredAccess` int(11) NOT NULL, 
    `hideIfNotAccess` int(11) NOT NULL, 
    `label` varchar(128) NOT NULL, 
    `link` varchar(128) NOT NULL, 
    `tagId` varchar(32) NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `menuId` (`menuId`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; 

什麼我沒有看到嗎?爲什麼這是一個語法錯誤?

+4

在MySQL中不是'預訂'保留關鍵字嗎? –

+0

重命名'order'列或將其包裝在反引號中。 – Farray

+0

你應該避免在你的網站上顯示mysql錯誤。 – eversor

回答

8

order是mySQL中的保留字。

圍繞它把反引號:

ORDER BY `order` ASC LIMIT 100 

或考慮重新命名的領域。

+1

如果可能的話,您可能需要考慮重命名列,以避免此類衝突。否則,你和其他人可能會在未來再次遇到這個問題。 –

+0

+1擊敗我:) –

+0

嘿,當然。新的它是簡單的。將重新命名。謝謝。 – dqhendricks

相關問題