mysql_affected_rows
Get number of affected rows in previous MySQL operation
&mysql.alternative.note;
mysqli_affected_rows
PDOStatement::rowCount
&reftitle.description;
intmysql_affected_rows
resourcelink_identifierNULL
Get the number of affected rows by the last INSERT, UPDATE, REPLACE
or DELETE query associated with link_identifier.
&reftitle.parameters;
&mysql.linkid.description;
&reftitle.returnvalues;
Returns the number of affected rows on success, and -1 if the last query
failed.
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 with MySQL versions prior to 4.1.2.
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.
The REPLACE statement first deletes the record with the same primary key
and then inserts the new record. This function returns the number of
deleted records plus the number of inserted records.
In the case of "INSERT ... ON DUPLICATE KEY UPDATE" queries, the
return value will be 1 if an insert was performed,
or 2 for an update of an existing row.
&reftitle.examples;
mysql_affected_rows example
]]>
&example.outputs.similar;
mysql_affected_rows example using transactions
]]>
&example.outputs.similar;
&reftitle.notes;
Transactions
If you are using transactions, you need to call
mysql_affected_rows after your INSERT, UPDATE, or
DELETE query, not after the COMMIT.
SELECT Statements
To retrieve the number of rows returned by a SELECT, it is possible to
use mysql_num_rows.
Cascaded Foreign Keys
mysql_affected_rows does not count rows affected
implicitly through the use of ON DELETE CASCADE and/or ON UPDATE CASCADE
in foreign key constraints.
&reftitle.seealso;
mysql_num_rows
mysql_info