将给定数据库的所有数据表名称放在一个数组中

时间:2013-11-13 14:32:15

标签: php

如何在连接到mysql数据库后仅获取数据表名称。

$query = $db1->prepare('show tables');
    $query->execute();
     $Columns = array();
     $index = 0;
     while($rows = $result->fetch(PDO::FETCH_ASSOC)){
         var_dump($rows);
         $Columns[$index] = $row;
         $index++;
                 }

我想获得这样的列表:[tabel1,table2 ...] 但第6行的结果是:

array(1) { ["Tables_in_database_name"]=> string(5) "tabel1" } array(1) { ["Tables_in_database_name"]=> string(10) "Datacamera" } array(1) { ["Tables_in_datacam"]=> string(7) "......." } }

什么是可以添加的php命令,只提取数据表名称?

2 个答案:

答案 0 :(得分:0)

尝试将PDO::FETCH_ASSOC更改为PDO::FETCH_NUM

请尝试

$query = $db1->prepare('show tables');
$query->execute();
 $Columns = array();
 while($row = $result->fetch(PDO::FETCH_NUM)){
     $Columns[] = $row[0];
 }

答案 1 :(得分:0)

如果您使用的是MySQL,那么您可以使用以下查询从information_schema数据库中将其作为正常结果集获取: -

select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='YOUR_DATABASE_NAME_HERE';

您可能需要为应用程序用户提供对information_schema数据库的SELECT访问权限。