2012-07-23 146 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())