mysql_affected_rows()的可能返回值

时间:2013-06-14 09:15:22

标签: php mysql

任何人都可以告诉我php中函数 mysql_affected_rows() (更新时)的所有可能返回值是什么?返回值也适用于什么情况?

如果更新查询没有更新任何内容或因错误而停止。它会返回-1还是0?那是我的问题?

2 个答案:

答案 0 :(得分:4)

  1. www.google.com
  2. mysql_affected_rows,搜索
  3. http://php.net/manual/en/function.mysql-affected-rows.php
  4.   

    成功时返回受影响的行数,如果是最后一行则返回-1   查询失败。

         

    如果最后一个查询是没有WHERE子句的DELETE查询,那么所有的查询都是   记录将从表中删除,但此功能将   使用4.1.2之前的MySQL版本返回零。

         

    使用UPDATE时,MySQL不会更新新值的列   与旧值相同。这创造了这样的可能性   mysql_affected_rows()实际上可能不等于行数   匹配,只有受字面意义影响的行数   查询。

         

    REPLACE语句首先删除具有相同主记录的记录   键然后插入新记录。此函数返回数字   已删除的记录加上插入的记录数。

         

    在“INSERT ... ON DUPLICATE KEY UPDATE”查询的情况下,   如果执行了插入,则返回值为1,或者对于更新,返回值为2   现有的一行。

    重要:

    不要弃用use mysql_*

答案 1 :(得分:2)

FROM Docs

  

成功时返回受影响的行数,如果上次查询失败,则返回-1。

     

如果最后一个查询是没有WHERE子句的DELETE查询,则所有记录都将从表中删除,但此函数将在4.1.2之前的MySQL版本中返回零。   使用UPDATE时,MySQL不会更新新值与旧值相同的列。这就产生了mysql_affected_rows()可能实际上不等于匹配的行数的可能性,只有查询受字面影响的行数。

     

REPLACE语句首先删除具有相同主键的记录,然后插入新记录。此函数返回已删除记录的数量加上插入的记录数。

     

在“INSERT ... ON DUPLICATE KEY UPDATE”查询的情况下,如果执行了插入,则返回值为1,或者对于现有行的更新,返回值为2.