毫无疑问我在这里遗漏了一些非常简单的东西,但是我无法看到这个查询产生以下错误的问题:
SQL query:
INSERT INTO ads(
ad_id, author, ad_date, category, title,
description, condition, price, fullname,
telephone, email, status, photo, photothumb
)
VALUES (
NULL , 'justal', '1225790938', 'Windsurf Boards',
'test', 'test', 'Excellent', '12', 'test',
'test', 'test', '', '', ''
);
MySQL said: Documentation
#1064 - 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 ''ad_id', 'author',
'ad_date', 'category', 'title', 'description',
'condition', '' at line 1
有一双新鲜眼睛的人可以发现这个问题吗?
谢谢, 人。
答案 0 :(得分:3)
你不应该在列名中使用反向刻度而不是单引号吗?
INSERT INTO ads( `ad_id`, `author`, `ad_date`, `category`, `title`, `description`, `condition`, `price`, `fullname`, `telephone`, `email`, `status`, `photo`, `photothumb` )
VALUES (
NULL , 'justal', '1225790938', 'Windsurf Boards', 'test', 'test', 'Excellent', '12', 'test', 'test', 'test', '', '', ''
);
答案 1 :(得分:2)
可能是CONDITION是一个mysql关键字,不允许作为列名。
http://dev.mysql.com/doc/refman/5.1/en/declare-conditions.html
你绝对不需要'或'
答案 2 :(得分:1)
单引号用于字符串文字。在MySQL中,默认情况下,双引号也用于字符串文字,尽管这与标准SQL不兼容,您应该在代码中使用单引号。
对于列名,通常根本不会引用它们。如果你需要 - 并且你不需要你的任何一个 - 那么用反引号(`)引用它们,或者将它设置为严格的ANSI兼容模式(ANSI_QUOTES)并使用双引号。