我正在尝试编写一个函数来显示数据库中的所有表:
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上工作,甚至当他们这样做时,在大多数人升级之前,它仍然需要几个月/几年。所以请保存你的呼吸。
答案 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);
}