Mysql-num-rows en pdo

Résolu/Fermé
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 - 2 août 2010 à 14:09
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 - 4 août 2010 à 01:32
Bonjour,

Je suis sur le développement de la v2 d'un script avant j'utilisai les fonction mysql mais je souhaiterai les remplace par pdo, mais je doit gardé mysql a coté de sa pour que les utilisateur de mon script puisse choisir pour me facilité le codage j'utilise des objet pour traité les requête pour pas encombré mon code avec des if a chaque requête.

donc dans mon objet a la fonction _construct je défini les information sur la bdd et c'est a la fonction connect que le type de requête a utilisé est défini.

donc pour la fonction count j'ai donc mysql_num_rows pour mysql et pdo pour le moment je n'ai qu'une fonction bricolé moi même

12 réponses

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
2 août 2010 à 15:37
Salut.

La classe PDOStatement te fournis la méthode rowCount() pour compter le nombre de résultats affectés.
https://www.php.net/manual/fr/pdostatement.rowcount.php
2
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 15
2 août 2010 à 20:51
Je sais bien mais sa ne marche pas avec les select je ne veut pas faire 2 requête une avec count et l'autre normal pour que sa ne prenne pas des ressource inutilement
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
2 août 2010 à 21:56
Ça fonctionne aussi un avec « SELECT ».
0
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 15
Modifié par sob_12 le 4/08/2010 à 00:27
oui mais c'est pas tellement ce que je veut pour sa :

Citation de la doc php :
Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.

La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sais pourquoi.
Ici nous avons réuni théorie et pratique: rien ne fonctionne .... et personne ne sais pourquoi (A. Einstein).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
3 août 2010 à 13:30
Ça fonctionne avec MySQL.
Mais le mieux est de le faire en deux requêtes, que ce soit avec les fonctions mysql_ ou PDO.
0
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 15
Modifié par sob_12 le 3/08/2010 à 13:42
pourquoi ?

En théorie sa consomme plus de ressource vu que 2 requête sont exécuté au lieux de 1

La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sais pourquoi.
Ici nous avons réuni théorie et pratique: rien ne fonctionne .... et personne ne sais pourquoi (A. Einstein).
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
3 août 2010 à 14:06
Parce que, comme tu l'as cité, ça ne fonctionne pas avec tous les SGBD.
Il y a une fonction mysql_num_rows() car MySQL supporte cette fonction, mais ce n'est pas le cas de tous (Firebird/InterBase n'ont pas cette fonctionnalité, par exemple).
0
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 15
3 août 2010 à 20:21
ok donc le mieux c'est de faire une requête normal et l'autre avec count()
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 973
3 août 2010 à 22:10
En théorie sa consomme plus de ressource vu que 2 requête sont exécuté au lieux de 1

J' ai envie de dire faux! Comem d' habitude Avion à raison, tu peux lui faire confiance, il m' a beaucoup aidé, ce ptit génie :)
0
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 15
4 août 2010 à 00:37
Même si j'ai de l'expérience je préfère quand même me renseigné car je développe pour des client donc je préfère que sa soit bien optimisé

Sinon le quel des deux est le mieux ?
faire une requête normal + une requête count()
ou faire une requête normal avec un script qui compte

Merci d'avance
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
4 août 2010 à 01:16
Il vaut mieux faire deux requêtes SQL.
Ça consommera un peu plus de ressources, mais ça rendra ton script plus portable. De toutes façons, une requête de plus ou de moins, la différence ne sera pas supérieure à quelques millisecondes.

PDOStatement->rowCount() doit plutôt être utilisé pour compter le nombre de lignes affectées (c'est-à-dire modifiées ou supprimées). Dans ce cas, je pense que ça fonctionne avec tous les SGBD.
0
sob_12 Messages postés 306 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 7 février 2012 15
4 août 2010 à 01:32
d'accord merci pour ton aide
0