2012-01-10 198 views
2

MySQL的另一個MySQL語法錯誤(通過PHP)此查詢返回一個語法錯誤:使用INSERT INTO

INSERT INTO links (link, name, desc, category) 
VALUES ('www.contoso.com', 'Contoso', 'My Website', 'Vanity') 

ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc, category) VALUES ('www.contoso.com', 'Contoso', 'My Website', 'Vani' at line 1

我看沒有錯。是什麼賦予了?

+0

作爲一般規則,不要爲表或列名使用保留字。它節省了很多麻煩。 – Ben 2012-01-10 21:30:50

回答

5

DESC是一個MySQL的保留字...如果你想用它作爲列名則必須將其括在反引號

字後實際的錯誤信息「近」給出確切位置的指示您的SQL語句解析器認爲錯誤是......在這種情況下,單詞「desc」。這通常是診斷問題的好指南。

+0

在我的noobness中,我不知道這是一個保留字。謝謝! – 2012-01-11 03:19:29

+0

我曾嘗試在同一時間滴答所有列名稱,它不起作用。我改爲「描述」,而它的工作。 – 2012-01-11 03:27:22

+0

@ user513905 - 確保你使用反引號(')而不是單引號(') – 2012-01-11 07:26:48

0

DESC是一個保留字,必須使用反引號進行轉義。

INSERT INTO links 
    (link, name, `desc`, category) 
    VALUES 
    ('www.datavirtue.com', 'Data Virtue', 'My Website', 'Vanity') 
2

descMySQL reserved keyword.它必須包含在反引號作爲

INSERT INTO links (link, name, `desc`, category) VALUES ('www.datavirtue.com', 'Data Virtue', 'My Website', 'Vanity') 
+0

+1確實如此 – 2012-01-10 21:14:44

1

「DESC」 是一個保留字。使用「描述」