我有一个包含特殊字段名称的表格,例如'from'和'order'
(此表与其他cms一起使用,我无法更改表结构)
我想使用cakephp 3添加记录,但我收到了'数据库错误'。
似乎对cakephp 3的查询没有用`character!
来消毒我在controler中的代码:
$tour = $this->Tours->patchEntity($tour, $this->request->data);
$this->Tours->save($tour);
生成的SQL是:
INSERT INTO tour_tours
(title, from , to, description, duration)
VALUES
('tour title', 'from', 'to', 'description of tour', 7)
SQL Query有语法错误...
我该怎么办?
答案 0 :(得分:2)
您需要添加
'quoteIdentifiers' => true
在doc
http://book.cakephp.org/3.0/en/orm/database-basics.html#configuration
答案 1 :(得分:1)
您可以从'quoteIdentifiers'=>配置数据源。 false为'quoteIdentifiers'=>在app.php上为true
OR
您的一个列使用MySQL保留的列名。
正如您所看到的, FROM 和 ORDER 是MYSQL的保留字,您可以尝试从数据库表中更改这些字。希望它有效。
例如:“tour_tours”表有一个“from”字段,它使您成为数据库错误。所以请从表中更改这些字段并重新尝试。