Quelle est la méthode éprouvée de compter le nombre de lignes renvoyées par PHP `mysql_query` fonction?

StackOverflow https://stackoverflow.com/questions/1191436

  •  19-09-2019
  •  | 
  •  

Question

Je sais mysql_num_rows ( resource $result ) mais je l'ai lu quelque part est-il pas précis à 100%. J'ai vu d'autres alternatives qui obtient effectivement chaque ligne et exécutent un compteur mais semble assez inefficace. Je suis curieux de voir ce que les autres font pour obtenir un décompte précis et efficace.

Était-ce utile?

La solution

Utilisation mysql_num_rows() lorsque vous avez fait une requête SELECT ou SHOW et mysql_affected_rows() en cas de requêtes INSERT, UPDATE, REPLACE or DELETE.
les deux sont assez précis !!

Autres conseils

mysql_num_rows() est exacte, aussi longtemps que vous ne l'utilisez mysql_unbuffered_query().

Si vous utilisez mysql_query(), mysql_num_rows() est exacte.

Si vous utilisez mysql_unbuffered_query(), mysql_num_rows() retournera le mauvais résultat jusqu'à ce que toutes les lignes sont récupérées.

Il serait utile de savoir exactement ce que vous faites avec le nombre de lignes, mais je suppose que ce soit pour l'application très standard des jeux de résultats de recherche de personnes.

Numéro deux requêtes. La première est une requête COUNT avec tous les critères where de la seconde. La seconde est utilisée pour extraire les lignes. Il est ceci ou charger 1000 lignes en mémoire lorsque vous allez seulement pour afficher 10 d'entre eux.

Cependant, si vous avez besoin pour garantir la précision, vous devrez envelopper les deux requêtes dans une transaction lecture cohérente. Sinon, une requête qui arrive à courir entre les requêtes de comptage et de données pourrait invalider l'information pagination.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top