MySQL:SHOW TABLES只返回第一个表

时间:2010-09-21 12:43:41

标签: php mysql

我正在使用SHOW TABLES来检索数据库中的表列表。 数据库有19个表

$db = mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$db)
  {
  die('Could not connect: ' . mysql_error());
  }
$dbselect = mysql_select_db($dbase,$db);
if(!$dbselect) {
  die('Could not connect: ' . mysql_error());
}
$c_query=mysql_query("SHOW TABLES ",$db);
var_dump(mysql_fetch_array($c_query));

OUTPUT仅提供带有第一个表的数组

array(2) { [0]=>  string(5) "tabl1" ["Tables_in_dbase"]=>  string(5) "tabl1" } 

为什么呢?如何检索数据库中所有表的列表? 更新:循环似乎是答案。似乎没有查询返回一个查询中的所有条目。

2 个答案:

答案 0 :(得分:4)

结果包含多行(每行每个表),尝试类似:

while($row = mysql_fetch_array($c_query)) {
    var_dump($row);
}

另请参阅phpMyAdmin中的查询结果,该结果还列出了多行。

答案 1 :(得分:2)

mysql_fetch_array将结果的下一行作为数组返回。它不会将完整的结果集作为2D数组返回。

您需要将该行包装在循环中:

while($row = mysql_fetch_array($c_query)) {
    var_dump($row);
}
相关问题