2011-08-26 85 views
1

這工作:PHP MySQL表信息

$result = mysql_query("SHOW TABLES FROM `someDatabase` "); 
while($row = mysql_fetch_array($result)){ 
    echo $row[0].'<br>'; 
} 

而且我得到的數據庫表就好了。 是否可以從相同的查詢中獲取更多信息? 我想顯示每個表名旁邊的記錄數,也許更多,如果有更多選項可用。

回答

2

當然,

運行查詢,像這樣:

SHOW TABLE STATUS FROM your-database

會給你一組數據(行,整理等;)

編輯

您也可以運行其他人:

SHOW FUNCTION STATUS WHERE `Db`='your-database'; 
SHOW PROCEDURE STATUS WHERE `Db`='your-database'; 
SHOW TRIGGERS FROM `your-database`; 
+0

這對我來說非常合適。謝謝! – coffeemonitor

1

看看即使在INFORMATION_SCHEMA

select * 
from information_schema.tables 
where table_schema = 'your_db' 
1

不,不是來自同一個查詢。你必須得到表名,然後從$表中運行單獨的「select count(*)」。 MyISAM確實有一個行數存儲在某個地方,可以從單個整體查詢中檢索。但InnoDB不存儲全局計數 - 如果存在未提交的事務,則總是錯誤的,並且計數將與正在進行計數的用戶有關。

+0

我不知道..從db顯示錶狀態適用於我......我的數據庫是MyISAM tho,所以你可能是對的InnoDB – Jakub

+1

也給我InnoDB表的行數,這是正確的數。 – sberry

+0

使用不同的連接/帳戶,再次嘗試使用已刪除/添加的行的一些未完成事務。 –