如何在cakephp 3中为sql查询添加`字符

时间:2015-08-29 05:12:59

标签: cakephp cakephp-3.0

我有一个包含特殊字段名称的表格,例如'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有语法错误...

我该怎么办?

2 个答案:

答案 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”字段,它使您成为数据库错误。所以请从表中更改这些字段并重新尝试。