错误更新实体 - Symfony 3
问题描述:
有一些非常非常非常错误的教条/ MySQL或我只是完全愚蠢。我想执行的问题实体的简单更新查询:错误更新实体 - Symfony 3
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| form_id | int(11) | YES | MUL | NULL | |
| name | varchar(255) | NO | | NULL | |
| question_type | varchar(255) | NO | | NULL | |
| validation | longtext | YES | | NULL | |
| required | tinyint(1) | YES | | NULL | |
| order | int(11) | NO | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
有了:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('order', IntegerType::class)
->add('name', TextType::class)
->add('questionType', TextType::class)
->add('validation', TextType::class)
->add('required', CheckboxType::class)
;
}
和
...
$em->persist($question);
...
我得到这个错误:
未捕获PHP异常Doctrine \ DBAL \ Exception \ SyntaxErrorException:“执行'更新问题时发生异常SET order =? WHERE id =?'与参数[1,12]
其他每个领域验证没有问题!
当我试图运行在控制台中相同的查询,这是结果:
mysql> UPDATE questions SET order=1 WHERE id=14;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order=1 WHERE id=14' at line 1
当我运行在工作台的那个查询,一切都很好:
UPDATE `questions` SET `order`='2' WHERE `id`='7';
最后,在这个表更新另一列(也整数!),就像这样:
update questions set form_id=5 where id=7;
去预期。
这是怎么回事?
编辑: 为了简化,为什么这个工程:
UPDATE questions SET form_id=5 WHERE id=7;
这并不:
UPDATE questions SET order=3 WHERE id=7;
对,我只是把它重命名为(随机名)orderx;)我没有想到这一点,因为顺序总是跟着BY。 BY也是保留的?不管怎样,谢谢。 – Tompo
不客气,我想这个语言分析器会在有'order'后跟一个空格时被触发 – user10089632