8791 sujets

Développement web côté serveur, CMS

Bonjour à vous,

J'utilise PDO pour interroger une base de données PgSQL. Je souhaiterai connaître le nombre de ligne que me retourne mon SELECT. Remarque importante : j'utilise la méthode query() pour exécuter ma requête et pas la méthode execute().

Merci d'avance pour vos conseils.
Salut,

par exemple :
$sql = 'SELECT * FROM matable';
$req = $dbh->query($sql);
$result = $req->fetchAll();
echo '<p>Cette requête retourne '.count($result)." enregistrements.</p>\n";
Pour la méthode PDOStatement::rowCount, ce n'est pas possible dans mon cas.

Voici ce que dit la documentation à ce sujet :
a écrit :
PDOStatement->rowCount — Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()


Pour rappel : j'utilise la méthode query() pour exécuter ma requête et pas la méthode execute(). (Ceci dit, je n'ai pas testé rowCount() avec query() Smiley cligne )

--------

Je n'avais pas pensé à fetchAll() ! Merci Heyoan, je vais tester !!

edit: Résolu avec fetchAll() et count().
Modifié par Alphonse (22 Nov 2010 - 10:18)
rowCount n'aurait aucun intérêt sur une requête execute. IL doit y avoir une erreur dans la doc.
En tout cas pour moi ça a toujours marché sur des requêtes query.