Selon le manuel, il existe un PDOStatement->rowCount
méthode; mais il ne devrait pas être utilisé (quoting) :
Pour la plupart des bases de données,
PDOStatement::rowCount()
ne retourne pas le nombre de lignes affectées par unSELECT
déclaration.
Utilisez plutôtPDO::query()
pour émettre unSELECT COUNT(*)
déclaration avec les mêmes prédicats que votreSELECT
prévu instruction, puis utilisezPDOStatement::fetchColumn()
pour récupérer le nombre de lignes qui seront retournées.
Votre application peut alors effectuer l'action correcte.
Si vous avez déjà un jeu d'enregistrements et que vous voulez savoir combien de lignes il contient, vous devrez récupérer les données en utilisant l'une des méthodes fetch*
méthodes; et utilisez count - comme vous l'avez suggéré.