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