16-01-2010, 10:09 AM
Ça peut être une solution à tester, mais la doc PHP indique que sur certains SGBD, rowCount() bug sur les requêtes de type SELECT. Cela étant, les commentaires ont l'air de dire que sur MySQL ça marche : je t'invite à tester et à nous le dire :p
Sinon, la solution suggérée par la doc est la suivante (une fois remise en forme pour virer les erreurs de la doc) :
Sinon, la solution suggérée par la doc est la suivante (une fois remise en forme pour virer les erreurs de la doc) :
Code PHP :
<?php
$resultats = $connexion->query('SELECT COUNT(id) FROM joueur WHERE blablabla');
$num_rows = $resultats->fetchColumn();
Ceci te permettant de récupérer simplement le contenu de la première colonne du premier rang du résultat, soit le COUNT(id). A mon humble avis (mais sans benchmark, je les ferais en rentrant de week-end si j'ai le temps) cette solution n'est bonne que si tu ne souhaites pas exploiter les colonnes reçues (c'est à dire si tu n'as pas l'intention de te servir du retour, par exemple pour vérifier si un pseudo est libre, ce genre de truc).
Si tu dois de toutes façons te servir du résultat (par exemple pour afficher une liste de joueurs ou autres) je pense que cette solution est plus optimisée et plus élégante :
Code PHP :
<?php
$resultats = $connexion->query('SELECT id FROM joueur WHERE blablabla');
$rows = $resultats->fetchAll();
$num_rows = count($rows);