(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()
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 comoPDO::CURSOR_SCROLL
.
Esta función no tiene parámetros.
Devuelve el número de filas.
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
.
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).