On peut facilement obtenir le nombre de lignes et de colonnes du résultat d'une requête de type SELECT :
$result = $dbh->query('SELECT id FROM table') ;
echo $result->rowCount() ; // nombre de lignes
echo $result->columnCount() ; // nombre de champs
Avec certains gestionnaires de bases de données (en particulier Sqlite) il arrive que la méthode rowCount() ne fonctionne pas. Dans ce cas-là, remplacez $res->rowCount() par count($data) (où $data est égal à count($result->fetchAll()), voir la section intitulée « Accéder aux résultats d'une requête select »), cela produira le même effet.
Plus d'informations sur PHP net pour rowCount() et columnCount().