(PHP 4, PHP 5, PECL mysql:1.0)
mysql_affected_rows — Devuelve el número de filas afectadas de la última operación MySQL
mysql_affected_rows() devuelve el número de filas afectadas en la ultima sentencia INSERT, UPDATE o DELETE sobre el servidor asociado con el identificador_de_enlace especificado. Si el identificador de enlace no ha sido especificado, se asume por defecto el último enlace.
Note: Si está usando transacciones, necesitará llamar mysql_affected_rows() después del INSERT, UPDATE, o DELETE, no después del commit.
Si la última sentencia fue un DELETE sin clausula WHERE, todos los registros han sido borrados de la tabla pero esta función devolvera cero.
Note: Cuando se usa UPDATE, MySQL no actualizará las columnas donde el nuevo valor es el mismo al actual. Esto crea la posibilidad de que mysql_affected_rows() pueda no ser igual al número de filas encontradas, solo el número de filas que fueron literalmente afectadas por la sentencia.
La sentencia REPLACE primero borra el registro con la misma llave principal y entonces inserta el nuevo registro. Esta función regresa el número de registros borrados más el número de registros insertados.
Para obtener el número de fils regresadas por un SELECT, es posible usar también mysql_num_rows().
Si la última consulta falló, esta función regresará -1.
Example#1 Delete-Query
<?php
/* connect to database */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
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());
/* with a where clause that is never true, it should return 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Records deleted: %d\n", mysql_affected_rows());
?>
El ejemplo anterior prducirá la siguiente salida:
Records deleted: 10 Records deleted: 0
Example#2 Update-Query
<?php
/* connect to database */
mysql_connect("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");
?>
El ejemplo anterior prducirá la siguiente salida:
Updated Records: 10
Vea también mysql_num_rows(), mysql_info().