不能在mysql中使用列名“desc”

时间:2011-11-20 07:53:23

标签: php mysql web

INSERT INTO movie (id, title, desc, released, views, featured) VALUES ('', 'title', '
\r\n    description
\r\n', '2006-12-12', '0', '0')

错误是

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近'desc,release,views,featured)VALUES('','title','   \ r \ n说明\ r \ n','在第1行

表结构是

id [ (pk, auto_inc) int(11) ]
title [ varchar(256) ]
desc [ text ]
released [ date ]
views [ int(11) ]
featured [ int(11) ]

在phpmyadmin sql编辑器中运行

3 个答案:

答案 0 :(得分:14)

desc是mysql reserved word。你必须使用反序词``和保留字的列。

INSERT INTO movie (id, title, `desc`, released, views, featured)...

您应该避免使用保留字作为列名,或者必须使用反引号(``)

答案 1 :(得分:4)

单词descreserved word,用作列名时必须用反引号。

INSERT INTO movie (id, title, `desc`, released, views, featured) VALUES
-- ...etc...

我还建议你以后不要使用desc作为列名,因为它会引起混淆并且只会引起问题。例如,您可以使用description代替。

答案 2 :(得分:3)

DESC是MySQL的保留字,如果你用它来命名,请考虑使用`desc`。