2011-08-26 82 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

使用不同的连接/帐户,再次尝试使用已删除/添加的行的一些未完成事务。 –