如何显示所有数据库及其所有表

时间:2014-09-04 08:51:17

标签: php mysql sql database

我想创建一个PHP脚本来显示所有数据库,然后显示每个数据库的每个表。这是我到目前为止所做的,但我需要更短的内容,而不是那么多的变量(函数和其他语言被排除在外):

$Cerere1="SHOW DATABASES";
$Cerere2="SHOW TABLES FROM `auth`";
$Cerere3="SHOW TABLES FROM `auth1`";
if( $db_list=mysql_query($Cerere1,$con) ) {
    $db_tables1=mysql_query($Cerere2,$con);
    $db_tables2=mysql_query($Cerere3,$con);
while( $row1 = mysql_fetch_row($db_tables1) && $row2 = mysql_fetch_row($db_tables2) )
    {

    }

如果它可以制作单个SHOW TABLES结构,并且如果我有2个数据库,每个2个表,将结构放入单个查询,或类似的东西..是的我知道mysql已被弃用,但是我必须使用它。

1 个答案:

答案 0 :(得分:2)

是。您可以SHOW DATABASES,并遍历结果集。

<?php

$con = mysql_connect("127.0.0.1", "root", "");
$strSQL = "SHOW DATABASES";
$resGet = mysql_query($strSQL, $con);

echo "Number of Databases:". mysql_num_rows($resGet) . PHP_EOL;

while ($row = mysql_fetch_assoc($resGet)) {
   $strSQL = "SHOW TABLES FROM ". $row['Database'];
   $resGet2 = mysql_query($strSQL, $con);
   echo "<h3>". mysql_num_rows($resGet2) ." Tables in ". $row['Database'] ."</h3>
           <ul>";
   while( $row2 = mysql_fetch_array($resGet2) ) {
       echo "<li>". $row2['Tables_in_'. $row['Database']] ."</li>";
   }
   echo "</ul>";
}

示例输出:

output