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ó.