Obtener el número de filas usando PDO
Obtener el número de filas usando PDO. Cuando necesite contar filas en una consulta SQL y que coincidan con algunos criterios en su base de datos, puede usar las siguientes opciones y ejemplos que daremos en el presente artículo.
Contar el número de filas usando PDO
En su lugar, siempre debes pedirle a tu base de datos que cuente las filas y luego devolver el único número, con una consulta como esta:
SELECT count(1) FROM usuarios
// o
SELECT count(*) FROM usuarios WHERE categoria_id = 1
Hay que tener en cuenta que no importa qué valor constante usar como parámetro de la función count(), ya sea
*
,0
ó1
o cualquier cosa; todo funciona igual siempre que sea una constante en lugar del nombre del campo. En caso de este último, sólo se contabilizarán los valores de este campo que no sean nulos.
Obtener la cantidad total de registros con fetchColumn()
Afortunadamente, PDO tiene una función dedicada para obtener el número total de la consulta, fetchColumn()
.
Si no se va a utilizar ninguna variable en la consulta, podríamos encadenar claramente esta función directamente a la llamada query()
:
$cantidad_total = $pdo->query("SELECT count(*) FROM table")->fetchColumn();
Contar registros SQL usando clausula WHERE
Pero si se va a utilizar alguna variable en la consulta, siempre se debe sustituir por un parámetro y ejecutar mediante una declaración preparada:
$stmt = $pdo->prepare("SELECT count(*) FROM usuarios WHERE categoria_id = ?");
$stmt->execute([$categoria_id]);
$count = $stmt->fetchColumn();
Contar registros usando QUERY
Otra alternativa y es usar la siguiente consulta SQL, es más sencilla y va directo al punto.
$nRows = $pdo->query('select count(*) from usuarios')->fetchColumn();
// Imprimimos la cantidad total en el navegador
echo $nRows;