6

SO和许多博客上都提出了这个问题的变体,但没有一个提供直接的答案。我希望有一个。我正在更新 PostgreSQL 9.0(来自 CodeIgniter,PHP 框架):

$sql_order = "UPDATE meters SET billed=true"; 
$query = $this->db->query($sql_order);

我只需要计算受更新影响的行数,但 PostgreSQL 似乎没有办法做到这一点。该查询现在返回一个布尔值 - true。手册和网络讨论引用RETURNING语法、 toGET DIAGNOSTICS和默认返回类型 from UPDATE。我一直无法让这些工作。有没有一种直接的方法可以让行影响计数,而不必将这个简单的操作嵌入到过程或事务中。

4

1 回答 1

8

在Java中,我会使用以下内容:

Statement stmt = connection.createStatement();
int rowsAffected = stmt.executeUpdate("UPDATE ...");

我相信在 PHPpg_affected_rows中是这样的。在你的特殊情况下$this->db->affected_rows()

于 2012-04-11T20:54:33.660 回答