2013-01-24 2 views
1

Je viens de remarquer que lorsque mysql_num_rows doit retourner le nombre de lignes retournées pour les commandes SELECT ou SHOW, retourne 0 pour la commande SHOW TABLE spécifiquement. A la place, il affiche le nombre de lignes affectées au lieu des nb lignes.SHOW TABLES et MYSQL_NUM_ROWS

Quelqu'un peut-il s'il vous plaît dites-moi s'il s'agit d'un bug ou si je manque quelque chose ici?

Répondre

1

Comme indiqué sur the PHP documentation page:

Récupère le nombre de lignes d'un jeu de résultats. Cette commande est seulement valide pour les instructions telles que SELECT ou SHOW qui renvoient un résultat réel .

Je pense que SHOW TABLES n'est pas une question technique qui produirait le type de jeu de résultats que mysql_num_rows énumère. Commande est utilisé pour afficher le nom de votre table dans votre base de données.

3

SHOW TABLE D'autre part, mysql_num_rows est utilisé pour compter le nombre de résultats obtenus à partir de votre requête. Cette requête est dépend de votre base de besoins ...

1

Ces fonctions « aide » (comme SHOW, EXPLAIN, DESCRIBE etc.) ne vous laissera pas question leurs résultats comme vous le feriez dans une table régulière.

Mais si vous cherchez comment vous pouvez le faire, pour SHOW TABLES que vous pouvez faire

SELECT `table_name` FROM `information_schema`.`tables` 
WHERE `table_schema`=DATABASE() 
-- DATABASE() selects current database name 
-- you can use the name of any database as a string instead 

Ainsi, vous pouvez utiliser essentiellement la base de données information_schema pour obtenir cette information.

0

C'était un bogue dans mysql, corrigé avec la mise à jour.