抱歉这个愚蠢的问题,但我无法弄清楚我的错字:
INSERT INTO lunchmenu (rid, date, repeat, approved) VALUES ('32', '2011-10-18', '3', '0')
我收到mySQL(v5)错误
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 '重复,批准'附近的价值('32','2011-10-18','3','0')'在线 1
我的表结构是
Field Type Size - NULL - Key - Attribute - Default - Extra
1. id int 11 no PI unsigned auto_increment
2. rid int 11 no unsigned
3. date date no I
4. repeat tinyint 1 no unsigned 0
5. approved int 10 no I unsigned 0
对我有任何暗示吗?感谢。
答案 0 :(得分:3)
date
和repeat
为reserved words in mySQL.
用反引号包裹它们,或使用不同的列名。
答案 1 :(得分:1)
问题是REPEAT
和DATE
是保留的,您需要使用反引号将其转义为将其用作列。
INSERT INTO `lunchmenu` (`rid`, `date`, `repeat`, `approved`) VALUES ....
始终转义列名和表名是一种很好的做法。
答案 2 :(得分:1)
试试这个:
INSERT INTO lunchmenu (rid, `date`, `repeat`, approved)
VALUES (32, '2011-10-18', 3, 0)
Date
和repeat
是保留字,因此您必须使用反引号。
可以找到其他保留字here
答案 3 :(得分:0)
DATE
和REPEAT
是MySQL中的保留关键字,请尝试
INSERT INTO lunchmenu AS l (l.rid, l.date, l.repeat, l.approved) VALUES ('32', '2011-10-18', '3', '0')
这会使您的数据库明确地将它们解析为列。