任何人都可以告诉我php中函数 mysql_affected_rows() (更新时)的所有可能返回值是什么?返回值也适用于什么情况?
如果更新查询没有更新任何内容或因错误而停止。它会返回-1还是0?那是我的问题?
答案 0 :(得分: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.