【发布时间】:2015-11-09 23:40:41
【问题描述】:
我正在尝试使用这个与 Doctrine DBAL 一起使用的正确 postgreSQL 查询,但到目前为止我没有成功,查询是:
UPDATE table SET field = field + 1 WHERE id = ? RETURNING field AS fieldName;
查询工作正常,但尝试从 RETURNING 子句恢复值我发现无法从 DBAL 中的查询结果中获取该值。
我尝试了 getLastInsertedId 与 fieldName 值和调用本身的返回值,但没有运气。有谁知道这样做的方法吗?
谢谢
【问题讨论】:
-
通常,您为使用 DB 抽象层付出的代价是无法访问底层数据库的所有功能。它可能有一些有限的方法来获取单个生成的密钥。
-
是的,我知道这一点,但我之所以问,是因为我可能遗漏了一些东西,并且有办法检索该信息。
-
大概你正在使用
executeUpdate()。试试executeQuery(),就好像它是一个SELECT。 -
是的,我使用
executeUpdate(),抱歉我没有这么说。但是executeQuery()返回一个PDOStatement对象,它只包含我发送的相同查询字符串。但是谢谢伙计! -
好的,我找到了解决方案。我现在发布它
标签: php postgresql doctrine-orm dbal