【发布时间】:2014-08-25 08:48:46
【问题描述】:
MySQL 与 PHP,试图更新一行:
$dbQuery = 'UPDATE UserTable SET Age=25 WHERE Id=3';
$result = mysqli_query($dbLink, $dbQuery);
if ($result === FALSE) {
// Take care of error
}
else {
$numAffectedRows = mysqli_affected_rows($dbLink);
}
我在两个不同的情况下得到零 $numAffectedRows:
1.当没有Id=3的用户行时
2.当有Id=3的用户行但Age之前已经是25了
有没有办法区分这两种情况? (除了读取之前的行并在更新之前手动检查值)
【问题讨论】:
-
您在任何一种情况下都不会影响一行,这似乎是一个奇怪的问题,您肯定是通过一个表单进行更新,这意味着用户一开始就存在并且您知道他们的 ID?
-
如果编码正确,则从表单发送的标准更新查询将返回成功消息或错误消息,在您的成功消息中,您将获得受影响的行,即。 1.在您的错误消息中,您还可以返回受影响的行 ie.0
标签: php mysql sql-update rows-affected