-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=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" }

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

编辑我知道堆栈溢出的每个人都是 mysqli 的大力倡导者,但他们目前甚至没有在 PHP6 上工作,即使他们这样做了大多数人升级之前仍需要数月/数年。所以,请屏住呼吸。

4

3 回答 3

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();
}
于 2013-03-30T08:41:19.497 回答
0

看第一个例子,mysql_list_tables 的替代方案:

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);
于 2013-03-30T08:41:21.600 回答
0

试试这个:-

while($table=mysql_fetch_object($show_table_query)) {
 var_dump($table);
}
于 2013-03-30T08:42:38.703 回答