2012-07-23 120 views
1

我有这个问题,在我的网站我尝试了个人资料页面上发表评论,但是当我点击提交它,它说MySQL服务器版本

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 'to, msg, author,time) 
VALUES ('52', Test','Sakaio911', NOW())' at line 1 

我做的是插入评论数据库,你可以看到哪些列。它是NOW()导致它,因为我不知道我做错了什么。

+1

逃避它在上下文中如果你能执行准确的查询后,这将有助于。 – DevlshOne 2012-07-23 14:48:05

+0

用于准备插入查询或调试以及完整插入查询的回显的PHP代码可能有所帮助。 – Omesh 2012-07-23 14:48:25

+0

9/10问题在于你的查询,而不是mysql服务器版本。 – 2012-07-23 14:49:16

回答

6

错误消息将您指向'至'列名称。根据该文件,该名称被保留为关键字。您可能会想要重命名该列,否则您将不得不做一些体操来使用该桌。

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

+2

使用反引号或方括号来“逃避”列名称。 – Gavin 2012-07-23 14:50:45

0

请确保您有两个用于SQL查询和PHP代码行itself.One分号“”标记内部和其他外部终止的代码行分号。

0

用back ticks包装字段名......例如`to`,`msg`等。这应该解决特定的问题。

0

( '52',测试 ' 'Sakaio911',NOW())'

insert语句使用逗号分隔符的字段名和它们的值。看起来你错过了'52'测试'之间的东西。 您是否在测试'之前短一个单引号,或者整个字符串是否应该用双引号括起来? “This'”

1

当你不想重命名您的列名,则必须通过'

... `to`, msg, author, time) VALUES ('52', 'Test','Sakaio911', NOW())