Tom wrote:
> Richard Lynch wrote:
>
>>Tom wrote:
>>
>>
>>>I've just started playing with the php5 improved mysqli extensions.
>>>
>>>I have the following code:-
>>>
>>><?php
>>>$mysqlim = new mysqli("localhost", "myUser", "myPassword","myDB");
>>>
>>>$updateQuery = "UPDATE client SET status = 'INACTIVE' WHERE clientName =
>>>'Tom'";
>>>
>>>if ($mysqli->query($updateQuery))
>>>{
>>>    $updateCount = $mysqli->affected_rows;
>>>    echo "<br>updateCount = $updateCount";
>>>}
>>>else
>>>{
>>>    excpetionHandler("updateFailed: ".$updateQuery);
>>>}
>>>?>
>>>
>>>
>>>This returns "updateCount = 1"
>>>However, when I check the underlying table, there are actually 4 rows
>>>updated (and yes, before anyone asks, I have repeated this several
>>>times, correctly resetting the data before each run)
>>>
>>>Is this a known bug, or am I doing something stupid?
>>>(php 5.0.2, apache 2.0.49)
>>>
>>>
>>
>>How many rows actually had 'Tom' for their clientName?...
>>
>>I mean, is the '1' wrong because it should be 4, or is it changing
>> records
>>it shouldn't?
>>
>>
>>
> It correctly updates 4 rows, but returns 1 as the count.
>
> I think that this may actually be a mysql issue - I've put the same
> php/apache configs onto another similar box, the only difference being
> that the second box is mysql 5.0.1, whereas the problem is reported
> against 5.0.0 (both alpha's!). The correct value is returned from the
> second  box.

Were the other three all "ACTIVE" before the update on both boxes?

Cuz http://php.net/mysql_affected_rows sez:

"Note:  When using UPDATE, MySQL will not update columns where the new
value is the same as the old value. This creates the possibility that
mysql_affected_rows() may not actually equal the number of rows matched,
only the number of rows that were literally affected by the query."

-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to