Re: mysql improved extensions affected_rows

From: Date: Fri, 14 Jan 2005 16:49:19 +0000
Subject: Re: mysql improved extensions affected_rows
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-206387@lists.php.net to get a copy of this message
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

« previous php.general (#206387) next »