Mysql-num-rows en pdo
Résolu
sob_12
Messages postés
306
Date d'inscription
Statut
Membre
Dernière intervention
-
sob_12 Messages postés 306 Date d'inscription Statut Membre Dernière intervention -
sob_12 Messages postés 306 Date d'inscription Statut Membre Dernière intervention -
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
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
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
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
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
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).
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).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ça fonctionne avec MySQL.
Mais le mieux est de le faire en deux requêtes, que ce soit avec les fonctions mysql_ ou PDO.
Mais le mieux est de le faire en deux requêtes, que ce soit avec les fonctions mysql_ ou PDO.
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).
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).
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).
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).
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 :)
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 :)
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
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
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.
Ç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.