在使用保留关键字作为表名或列名时,出现了 Propel 语法错误。

4

有没有办法让 Propel 在添加/更新行时自动转义列名称,这些列名称是保留字?

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

$row->setOrder(1)->save();

我遇到了一个语法错误,错误提示为“PHP致命错误:抛出异常'PDOException',消息为'SQLSTATE [42601]:语法错误:7 ERROR:在'order'附近有语法错误\n第1行:UPDATE terms SET order=$ 1 WHERE terms.id=$ 2\n ^'”

1个回答

5

我猜这是每种编程语言的通用规则:不要使用保留字作为标识符 :o) - Abelisto
@Abelisto,这不仅仅是“标识符”,而是列名。因此,如果您在DB逻辑中有一个“order”列-为什么要将其更改为其他内容呢?更简单的方法是转义SQL查询字段。 实际问题是Propel默认情况下不转义字段/名称。 - Djanym

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接