Función mysql_affected_rows() de PHP

Definición y uso

La función mysql_affected_rows() devuelve el número de filas afectadas por la última operación MySQL.

Sintaxis

mysql_affected_rows(link_identifier)
Parámetros Descripción
link_identifier Obligatorio. Identificador de conexión de MySQL. Si no se especifica, se utiliza por defecto el último que se mysql_connect() Conexiones abiertas. Si no se encuentra esa conexión, la función intentará llamar a mysql_connect() Establecer una conexión y usarla. Si ocurre un error, no se encuentra la conexión o no se puede establecer la conexión, el sistema emite un mensaje de advertencia de nivel E_WARNING.

Descripción

Obtener la última vez que se relaciona con link_identifier El número de filas afectadas por la consulta INSERT, UPDATE o DELETE relacionada.

Devuelve el valor

Si se ejecuta con éxito, devuelve el número de filas afectadas, si la última consulta falla, la función devuelve -1.

Si la última operación es una consulta DELETE sin condiciones (WHERE), se eliminarán todos los registros de la tabla, pero el valor devuelto de esta función antes de la versión 4.1.2 siempre es 0.

Cuando se utiliza una consulta UPDATE, MySQL no actualizará las columnas que tienen el mismo valor de nuevo valor. Esto hace que el valor devuelto por la función mysql_affected_rows() no sea necesariamente el número de registros que coinciden con las condiciones de la consulta, solo se devuelve el número de registros realmente modificados.

La sentencia REPLACE primero elimina los registros que tienen la misma clave principal, luego inserta un nuevo registro. La función devuelve el número de registros eliminados más el número de registros insertados.

Ejemplo

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die("No se pudo conectar: " . mysql_error());
  }
mysql_select_db("mydb");
mysql_query("DELETE FROM mytable WHERE id < 5");
$rc = mysql_affected_rows();;
echo "Registros eliminados: " . $rc;
mysql_close($con);
?>

Salida:

Registros eliminados: 4