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

Reply via email to