Según el manual, hay un PDOStatement->rowCount
método; pero no debería usarse (citando) :
Para la mayoría de las bases de datos, PDOStatement::rowCount()
no devuelve el número de filas afectadas por un SELECT
declaración.
En su lugar, utilice PDO::query()
para emitir un SELECT COUNT(*)
declaración con los mismos predicados que su intención SELECT
declaración, luego use PDOStatement::fetchColumn()
para recuperar el número de filas que se devolverán.
Su aplicación puede entonces realizar la acción correcta.
Si ya tiene un juego de registros y quiere saber cuántas líneas hay en él, tendrá que buscar los datos usando uno de los fetch*
métodos; y use contar, como sugirió.