【问题标题】:"1064 You have an error in your SQL" while try to execute INSERT using Symfony2 and Doctrine2尝试使用 Symfony2 和 Doctrine2 执行 INSERT 时出现“1064 You have an error in your SQL”
【发布时间】:2013-09-29 14:32:23
【问题描述】:

我正在使用 Symfony2 和 Doctrine2 ORM 执行查询,但出现此错误:

执行“INSERT INTO”时发生异常 stock_detail_has_product_detail(内容、创建、修改、 deletedAt,stock_detail,upc,产品,条件,公司, product_detail) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [“黑人”,“2013-09-29 02:54:46”,“2013-09-29 02:54:46”,空,1, "AR024MHLXF83XZO3LQ78", 1, 1, 51, 1]:

SQLSTATE[42000]:语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于使用 near 'condition 的正确语法, 公司,product_detail)值('黑人','2013-09-29 02:54:46','201' 在第 1 行

我找不到是什么原因造成的,我检查了表格,列的长度,似乎没问题,有谁能给我一些提示或指出正确的方向吗?

PS:查询是由 Doctrine 内部生成的,因为我只是将对象持久化到 DB

【问题讨论】:

    标签: mysql symfony doctrine-orm symfony-2.3


    【解决方案1】:

    “条件”是mysql中的保留字(http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html)。这必须被转义 - 或重命名。我不熟悉 Doctrine,所以我不能说是否有可能逃离该领域。但也许您可以更改模型的字段名称?

    问候,

    【讨论】:

    • 与“order”一词(在 sql 保留字列表中)有同样的问题。可惜SQL异常不明显
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 2015-11-14
    • 2014-10-14
    • 2012-11-20
    • 1970-01-01
    • 2020-10-10
    • 2022-07-06
    相关资源
    最近更新 更多