MySQL INSERT查询是否可能无序运行

时间:2011-09-18 23:03:05

标签: mysql sql syntax-error mysql-error-1064

我正试图跑:

INSERT INTO orders ('id','datetime','server','price','comment','addons','table_number','Omelet','Pancakes','Crepes','Salad','Steak_Sandwich','Chicken_Quesadilla','BLT','Prime_Rib','Pineapple_Upside_Down_Cake') VALUES ('','18/9/11 6:49:03PM','admin','0', 'N/A','None','0','1','2','3','4','5','6','7','8','9')

和phpmyadmin columheaders看起来像:

    id  datetime    server  price   comment addons  table_number    Omelet  Steak_Sandwich  Chicken_Quesadilla  BLT Salad   Prime_Rib   Crepes  Pancakes    Pineapple_Upside_Down_Cake

并且正在返回:

  

1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   近   '' 身份证”, '日期时间', '服务器', '价格', '评论', '插件', 'table_number', '煎鸡蛋', '潘'   在第1行

我可以像我一样无序地执行此操作,如果是这样,任何人都可以发现我的错误 提前致谢

1 个答案:

答案 0 :(得分:3)

只要id是列名称 - 您需要删除单引号并用反引号替换它们

INSERT INTO orders (`id`, `datetime`, ...

此外,您也可以删除反引号,并按原样指定id,但如果您的列名与mysql的某个关键字同名,例如from

UPD:正如有人在评论中指出的那样(抱歉,我不记得你的名字并且评论已被删除) - 如果id是自动增量字段,那么你可以完全避免指定它(如果是这样 - 不要忘记从值列表中删除它的值(空字符串)