SHOW TABLES如何工作 - MySQL

时间:2013-03-30 08:36:27

标签: php mysql

我正在尝试编写一个函数来显示数据库中的所有表:

function showTables($host, $user, $pass, $db){
    mysql_connect($host,$user,$pass)or die( "Unable to connect");
    mysql_select_db($db) or die( "Unable to select database");
    $show_table_query = mysql_query("SHOW TABLES");
    $tables=mysql_fetch_assoc($show_table_query);
    return var_dump($tables);
    mysql_close();
}

当我将查询更改为SELECT * FROM table时,我得到的结果集与我所有的行一样正如我所期望的那样......但是因为它是SHOW TABLES我的函数返回:

array(1) { ["Tables_in_internal"]=> string(8) "activity" }

如何获取结果集以显示表名列表?

EDIT 我知道堆栈溢出的每个人都是mysqli的大力倡导者,但他们目前甚至没有在PHP6上工作,甚至当他们这样做时,在大多数人升级之前,它仍然需要几个月/几年。所以请保存你的呼吸。

3 个答案:

答案 0 :(得分:2)

function showTables($host, $user, $pass, $db){
   mysql_connect($host,$user,$pass)or die( "Unable to connect");
   mysql_select_db($db) or die( "Unable to select database");
   $show_table_query = mysql_query("SHOW TABLES");
   $tables=array();

   while($table = mysql_fetch_assoc($show_table_query)) {
       $tables[] = $table;
   }

   var_dump($tables);

   mysql_close();
}

答案 1 :(得分:0)

查看first example,mysql_list_tables的替代方法:

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

答案 2 :(得分:0)

试试这个: -

while($table=mysql_fetch_object($show_table_query)) {
 var_dump($table);
}