(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_CURSORestá definido comoPDO::CURSOR_SCROLL.
Esta función no contiene ningún parámetro.
Devuelve el número de filas.
Emite un error de nivel E_WARNING si el atributo PDO::ATTR_ERRMODE está definido
a PDO::ERRMODE_WARNING.
Lanza una excepción PDOException si el atributo PDO::ATTR_ERRMODE está definido
a 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";
?>Resultado del ejemplo anterior es 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).";
?>Resultado del ejemplo anterior es similar a :
Hay 2 fila(s) correspondiente(s).