Zgodnie z instrukcją, istnieje PDOStatement->rowCount
metoda; ale nie należy go używać (cytuję) :
W przypadku większości baz danych PDOStatement::rowCount()
nie zwraca liczby wierszy, których dotyczy SELECT
oświadczenie.
Zamiast tego użyj PDO::query()
wystawić SELECT COUNT(*)
instrukcja z takimi samymi predykatami, jak zamierzony SELECT
oświadczenie, a następnie użyj PDOStatement::fetchColumn()
aby pobrać liczbę wierszy, które zostaną zwrócone.
Twoja aplikacja może wtedy wykonać prawidłowe działanie.
Jeśli masz już zestaw rekordów i chcesz wiedzieć, ile jest w nim wierszy, będziesz musiał pobrać dane za pomocą jednego z fetch*
metody; i użyj licznika - tak jak sugerowałeś.