Documentación offline PHP master

mysql_affected_rows

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

mysql_affected_rows

Obtiene el número de filas afectadas en la anterior operación de MySQL

[!WARNING] Esta extensión estaba obsoleta en PHP 5.5.0, y fue eliminada en PHP 7.0.0. En su lugar, se puede utilizar la extensión MySQLi o la extensión PDO_MySQL. Ver también MySQL: elegir una API de la guía. Alternativas a esta función:

mysqli_affected_rows

PDOStatement::rowCount

Descripción#

mysql_affected_rows([resource $link_identifier]): int
```php

Obtiene el número de filas afectadas por la última consulta INSERT, UPDATE, REPLACE o DELETE asociada con `link_identifier`.

## Parámetros

`link_identifier`  
La conexión MySQL. Si no se especifica, se utilizará la última conexión abierta con la función `mysql_connect`. Si no se encuentra una conexión de este tipo, la función intentará abrir una conexión, como si la función `mysql_connect` hubiera sido llamada sin argumento. Si no se encuentra o establece una conexión, se generará una alerta de nivel `E_WARNING`.

## Valores devueltos

Devuelve el número de filas afectadas en caso de éxito, y -1 si la última consulta falló.

Si la consulta anterior fue DELETE con ninguna cláusula WHERE, todos los registros habrán sido borrados de la tabla, aunque ésta función devolverá cero con una versión anterior a MySQL 4.1.2.

Al utilizar UPDATE, MySQL no actualiza las columnas donde el nuevo valor es el mismo que el anterior. Esto crea la posibilidad de que `mysql_affected_rows` no pueda equivaler en realidad al número de filas encontradas, solamente el número de filas que estuvieron literalmente afectadas por la consulta.

La sentencia REPLACE primero borra el registro con la misma clave primaria y luego inserta el nuevo registro. Esta función devuelve el número de registros borrados más el número de registros insertados.

En el caso de consultas "INSERT ... ON DUPLICATE KEY UPDATE", el valor devuelto será `1` si se realizó una inserción, o `2` para una actualización de una fila existente.

## Ejemplos

Ejemplo de `mysql_affected_rows`
Resultado del ejemplo anterior es similar a:

    Registros borrados: 10
    Registros borrados: 0

Ejemplo de `mysql_affected_rows` al utilizar transacciones

```php

Resultado del ejemplo anterior es similar a:

Registros actualizados: 10

Notas#

[!NOTE] Si se usan transacciones, es necesario llamar a mysql_affected_rows después de una consulta INSERT, UPDATE, o DELETE, no después del COMMIT.

[!NOTE] Para conocer el número de filas devueltas por un SELECT, es posible usar mysql_num_rows.

[!NOTE] mysql_affected_rows no cuenta la filas afectadas implícitamente a través del uso de ON DELETE CASCADE y/o ON UPDATE CASCADE en las restricciones de las claves foráneas.

Véase también#

mysql_num_rows

mysql_info