这是一个非常简单的例子:
我有一个包含两列的表格,id
和 password
。我想知道更新何时成功完成,成功被定义为应用于现有行。
PHP 似乎只提供 mysql_affeted_rows()
,它不区分受影响的 0 行和更新的 0 行。 http://php.net/manual/en/function.mysql-affected-rows.php这很尴尬,因为返回值取决于事务发生时行的状态。在 Postgresql 中,您可以通过两种方式获取它,UPDATE foo SET bar = NULL
,将返回foo
中更新 的行数;而 UPDATE foo SET bar = NULL WHERE bar IS NOT NULL
将通过限制更新返回受影响的行数。
不要费心建议先前的 SELECT
或 PHP 计数器 var,它们假设有一行。我想知道在没有冗余查询的情况下获得 Pg 功能的巧妙方法。
最佳答案
mysql_affected_rows
将始终返回由 UPDATE
更新的行数。
换句话说,对于UPDATE foo SET bar = NULL
,它将返回与UPDATE foo SET bar = NULL WHERE bar IS NOT NULL
相同的行数相同的起始数据。
或者至少在您链接到的手册页上的“返回值”标题下,它是这样记录的。
关于php - 使用php在mysql中获取更新row_count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1941052/