2013-01-24 109 views
1

我剛剛注意到,mysql_num_rows應返回SELECT或SHOW命令返回的行數,具體爲SHOW TABLE命令返回0。SHOW TABLES和MYSQL_NUM_ROWS

而是顯示受影響的行數而不是num行。

任何人都可以告訴我,如果這是一個錯誤,或者我在這裏丟失什麼?

回答

1

作爲上the PHP documentation page指出:

檢索的行數從一個結果集。對於像SELECT或SHOW這樣的語句,該命令僅對 有效,該語句返回實際結果 集。

我的猜測是SHOW TABLES不是產生mysql_num_rows枚舉的結果集類型的技術查詢。

3

SHOW TABLE命令用於在數據庫中顯示錶名。另一方面,mysql_num_rows用於計算查詢得到的結果數量。此查詢取決於您的要求的基礎上...

1

這些「輔助」功能(如SHOWEXPLAINDESCRIBE等)不會讓你問題他們的結果,就像您在普通表。

但是,如果你正在尋找你如何能做到這一點,SHOW TABLES你可以做

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 

所以基本上你可以使用information_schema數據庫來獲取信息。

0

這是一個在mysql中的錯誤,修復它的更新。