You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony4.4操作MySQL5.7插入数据时出现SQL语法错误

问题排查与解决

错误原因

问题出在字段名option上,option是MySQL 5.7的保留关键字,直接在SQL语句中使用未转义的保留关键字作为字段名,会触发语法错误。报错信息里的near 'option, description...'也明确指向了这个位置。

解决方法

有两种可行的处理方式:

1. 临时修复:在SQL语句中转义字段名

在MySQL中,用反引号(`)包裹保留关键字作为字段名。修改后的插入语句如下:

INSERT INTO dtb_repair (order_no, product_id, product_code, resize, original_size, `option`, description, discriminator_type) VALUES (9, 4, '324', '0.5', '0.5', 1, 'test', 'repair');

如果是在Symfony的Doctrine中使用,需要在实体类的字段映射里添加反引号,通过@Column注解的name属性转义:

// 实体类中的字段定义
/**
 * @ORM\Column(name="`option`", type="integer")
 */
private $option;

2. 永久解决:修改字段名

如果项目允许,建议将option字段重命名为非保留关键字,比如repair_option或product_option,从根源避免这类问题。修改表结构的SQL语句:

ALTER TABLE dtb_repair CHANGE COLUMN `option` repair_option INT(11) NOT NULL;

之后同步更新Symfony实体类中的字段名和映射关系即可。

内容的提问来源于stack exchange,提问作者maz32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 14:05:35