Quando si utilizza MySQL, PDOStatement::rowCount()
restituisce il numero di righe nel set di risultati. In realtà chiama
il sottostante mysql_num_rows()
Funzione C per popolare il valore. Non c'è bisogno di più query o altri problemi.
Questo è vero per MySQL, ma non è possibile fare affidamento su questo comportamento per altri driver (altri potrebbero supportarlo ma non è garantito, non ho abbastanza familiarità con gli altri per dirlo con certezza in entrambi i casi). Ma poiché la tua domanda riguarda specificamente MySQL, dovrebbe servire ai tuoi scopi.