【问题标题】:Can MySQL INSERT Query be run out of orderMySQL INSERT Query 可以乱序运行吗
【发布时间】:2011-11-19 20:56:03
【问题描述】:

我正在尝试运行:

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 的列头看起来像:

    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 服务器版本,以便使用正确的语法 靠近 ''id','datetime','server','price','comment','addons','table_number','Omelet','Pan' 在第 1 行

我可以像我拥有的​​那样乱序执行此操作吗?如果可以,任何人都可以发现我的错误 提前致谢

【问题讨论】:

  • 您能想出一个更简单(即更短)的问题示例吗?

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


【解决方案1】:

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

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

您也可以删除反引号并按原样指定id,但如果您的列名与mysql的关键字之一具有相同的名称,这可能会导致问题,例如from

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

【讨论】:

  • 谢谢我试过了,但是到处都是,并且从 php 中得到了一个 WSOD,这可能改变了我在 var 中不应该有的东西
  • @CCG121:嗯,什么?查看日志并打开错误输出。
猜你喜欢
  • 2015-05-12
  • 2023-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2012-01-27
  • 1970-01-01
  • 2017-10-02
  • 2012-08-02
相关资源
最近更新 更多