在表名或列名中使用保留关键字时收到 Propel 语法错误

kns*_*ely 4 mysql postgresql propel syntax-error propel2

有没有办法让 Propel 在添加/更新行时自动转义作为保留字的列名?

现在我有一个名为“order”的列,当我尝试使用更新时

$row->setOrder(1)->save();
Run Code Online (Sandbox Code Playgroud)

我收到语法错误“PHP 致命错误:未捕获的异常 'PDOException',消息为 'SQLSTATE[42601]:语法错误:7 错误:“订单”处或附近的语法错误\nLINE 1:更新条款 SET order=$1 WHERE 条款。 id=$2\n ^'"

kns*_*ely 5

我在http://propelorm.org/documentation/reference/schema.html#database-element找到了答案。

将参数添加identifierQuoting="true"到我的<database>schema.xml 中的标记修复了问题。我相信您也可以将其添加到<table>标签中以将其限制为单个表。我不确定为什么这不是默认设置。