mysql_affected_rows

Get number of affected rows in previous MySQL operation (PHP 3, PHP 4 )
int mysql_affected_rows ( [resource link_identifier ] )

mysql_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query associated with link_identifier. If the link identifier isn't specified, the last link opened by mysql_connect() is assumed.

Note:

If you are using transactions, you need to call mysql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the commit.

If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero.

Note:

When using UPDATE, MySQL will not update columns where the new value is the same as the old value. This creates the possiblity 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.

mysql_affected_rows() does not work with SELECT statements; only on statements which modify records. To retrieve the number of rows returned by a SELECT, use mysql_num_rows().

If the last query failed, this function will return -1.

Example 583. Delete-Query

<?php
   
/* connect to database */
   
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
       die(
"Could not connect: " . mysql_error());
   
mysql_select_db("mydb");
       
   
/* this should return the correct numbers of deleted records */
   
mysql_query("DELETE FROM mytable WHERE id < 10");
   
printf ("Records deleted: %d\n", mysql_affected_rows());

   
/* without a where clause in a delete statement, it should return 0 */
   
mysql_query("DELETE FROM mytable");
   
printf ("Records deleted: %d\n", mysql_affected_rows());
?>

The above example would produce the following output:

Records deleted: 10
Records deleted: 0

Example 584. Update-Query

<?php
   
/* connect to database */
   
mysql_pconnect("localhost", "mysql_user", "mysql_password") or
       die(
"Could not connect: " . mysql_error());
   
mysql_select_db("mydb");

   
/* Update records */
   
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
   
printf ("Updated records: %d\n", mysql_affected_rows());
   
mysql_query("COMMIT");
?>

The above example would produce the following output:

Updated Records: 10

See also mysql_num_rows(), mysql_info().

This HTML Help has been published using the chm2web software.