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

publicPDOStatement::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

$del = $gbd->prepare('DELETE FROM fruit');
$del->execute();


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)) {


if ($resultado->fetchColumn() > 0) {


$sql = "SELECT name FROM fruit WHERE calories > 100";
foreach (
$conexión->query($sql) as $fila) {
print
"Nombre: " . $fila['NAME'] . "\n";
}
}

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

To Top