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:

Btw, now I've discovered, that mysql_num_rows after SELECT query
doesn't work either! Or, to be more precise, it works the same wrong
way as mysql_affected_rows.

That's getting interesting...


Previous Comments:
------------------------------------------------------------------------

[2004-06-30 08:41:31] [EMAIL PROTECTED]

Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.


Please provide a complete and reproducable testcase/script 
(including table definition and plain sql statements). 

------------------------------------------------------------------------

[2004-06-22 12:07:52] nav at nc dot ru

No, I carefully checked the record before and after UPDATE. It WAS
changed. However, mysql_affected_rows returned 0.

------------------------------------------------------------------------

[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