ID: 28871
User updated by: nav at nc dot ru
Reported By: nav at nc dot ru
-Status: Feedback
+Status: Open
Bug Type: MySQL related
Operating System: Windows XP
PHP Version: 4.3.6
New Comment:
No, I carefully checked the record before and after UPDATE. It WAS
changed. However, mysql_affected_rows returned 0.
Previous Comments:
------------------------------------------------------------------------
[2004-06-22 00:47:51] [EMAIL PROTECTED]
Maybe the data is unchanged, meaning that it already was
what you were trying to change it to.
------------------------------------------------------------------------
[2004-06-21 18:39:34] nav at nc dot ru
Description:
------------
I've got the problem similar to already reported here.
mysql_afftected_rows sometimes returns 0, sometimes 1. Although
actually it does UPDATES the record. This query changes user login
(password, e-mail) in the table "user" (see below. If it matters, MySQL
is 3.23.53-max, Apache is 1.3.27):
Reproduce code:
---------------
mysql_query("UPDATE user SET ".$setRequest." WHERE login =
'$userCurrentLogin' AND password = md5('$userCurrentPass')");
/* $setRequest is the string compiled conditionally, but I've just
printed whole query string and it looked correct:
UPDATE user SET login = 'aaa' WHERE login = 'bbb' AND password =
md5('ccc') */
$num = mysql_affected_rows();
if ($num == 0) $errorMsg = "Could not complete your request. Check the
data";
else if ($num == -1) $errorMsg = "Database error. Try again later";
else $changeMsg = "Your data has been successfully changed";
Expected result:
----------------
Of course, I expect correct work of mysql_affected_rows :)
Actual result:
--------------
BUT the result ($num) is sometimes 0, sometimes 1, even if the record
is actually updated.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28871&edit=1