# PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Devuelve el número de filas afectadas por la última sentencia SQL

### Descripción

public PDOStatement::rowCount(): int

PDOStatement::rowCount() devuelve el número de filas afectadas por la última sentencia DELETE, INSERT, o UPDATE ejecutada por el correspondiente objeto `PDOStatement`.

Si la última sentencia SQL ejecutada por el objeto `PDOStatement` asociado fue una sentencia SELECT, algunas bases de datos podrían devolver el número de filas devuelto por dicha sentencia. Sin embargo, este comportamiento no está garantizado para todas las bases de datos y no debería confiarse en él para aplicaciones portables.

### Valores devueltos

Devuelve el número de filas.

### Ejemplos

Ejemplo #1 Devolver el número de filas eliminadas

PDOStatement::rowCount() devuelve el número de filas afectadas por una sentencia DELETE, INSERT, o UPDATE.

`<?php
/* Borrar todas las filas de la tabla FRUIT */
$del = $gbd->prepare('DELETE FROM fruit');
$del->execute();
/* Devolver el número de filas que fueron eliminadas */
print("Devolver el número de filas que fueron eliminadas:\n");
$cuenta = $del->rowCount();
print("Eliminadas $cuenta filas.\n");
?>`

El resultado del ejemplo sería:

    Devolver el número de filas que fueron eliminadas:
    Eliminadas 9 filas.

Ejemplo #2 Contar las filas devueltas por una sentencia SELECT

Para muchas bases de datos, PDOStatement::rowCount() no devuelve el número de filas afectadas por una sentencia SELECT. En su lugar, use PDO::query() para ejecutar una sentencia SELECT COUNT(*) con las mismas declaraciones que la sentencia SELECT pretendida, luego use PDOStatement::fetchColumn() para recuperar el número de filas que serán devueltas. La aplicación podrá entonces realizar la acción correcta.

`<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($resultado = $conexión->query($sql)) {
/* Comprobar el número de filas que coinciden con la sentencia SELECT */
if ($resultado->fetchColumn() > 0) {
/* Ejecutar la sentencia SELECT real y trabajar con los resultados */
$sql = "SELECT name FROM fruit WHERE calories > 100";
foreach ($conexión->query($sql) as $fila) {
print "Nombre: " . $fila['NAME'] . "\n";
}
}
/* No coincide ningua fila -- hacer algo en consecuencia */
else {
print "Ninguna fila coincide con la consulta.";
}
}
$resultado = null;
$conexión = null;
?>`

El resultado del ejemplo sería:

    apple
    banana
    orange
    pear

### Ver también

- PDOStatement::columnCount() - Devuelve el número de columnas de un conjunto de resultados
- PDOStatement::fetchColumn() - Devuelve una única columna de la siguiente fila de un conjunto de resultados
- PDO::query() - Ejecuta una sentencia SQL, devolviendo un conjunto de resultados como un objeto PDOStatement