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 llamada a la función PDOStatement::execute()

Descripción

public PDOStatement::rowCount(): int

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

Si la última consulta SQL ejecutada por el objeto PDOStatement asociado es una consulta de tipo SELECT, algunas bases de datos devolverán el número de filas devueltas por dicha consulta. No obstante, este comportamiento no está garantizado para todas las bases de datos y no debería ser utilizado para aplicaciones portables.

Nota:

Este método siempre devuelve "0" (cero) con el controlador PostgreSQL, cuando el atributo de declaración PDO::ATTR_CURSOR está definido como PDO::CURSOR_SCROLL.

Parámetros

Esta función no tiene parámetros.

Valores devueltos

Devuelve el número de filas.

Errores/Excepciones

Emits an error with level E_WARNING if the attribute PDO::ATTR_ERRMODE is set to PDO::ERRMODE_WARNING.

Throws a PDOException if the attribute PDO::ATTR_ERRMODE is set to PDO::ERRMODE_EXCEPTION.

Ejemplos

Ejemplo #1 Devuelve el número de filas eliminadas

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

<?php
/* Eliminación de todas las filas de la tabla FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Devuelve el número de filas eliminadas */
print "Devuelve el número de filas eliminadas :\n";
$count = $del->rowCount();
print
"Eliminación de $count filas.\n";
?>

El resultado del ejemplo sería algo similar a:

Devuelve el número de filas eliminadas :
Eliminación de 9 filas.

Ejemplo #2 Conteo de filas devueltas por una consulta SELECT

Para la mayoría de las bases de datos, PDOStatement::rowCount() no devuelve el número de filas afectadas por una consulta SELECT. En su lugar, utilice PDO::query() para hacer una consulta SELECT COUNT(*), luego utilice PDOStatement::fetchColumn() para recuperar el número de filas correspondientes.

<?php
$sql
= "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();

print
"Hay " . $count . " fila(s) correspondiente(s).";
?>

El resultado del ejemplo sería algo similar a:

Hay  2 fila(s) correspondiente(s).

Ver también