列出DB中的所有表

时间:2016-06-01 12:46:17

标签: php mysql

我正在尝试显示数据库中所有表的列表

我有以下代码:

 $result=mysql_query("SELECT TABLE_NAME FROM vogaldes_fuse.INFORMATION_SCHEMA.Tables ")or die('ERROR 315' );
 $num_rows = mysql_num_rows($result);
 echo "$num_rows";

然而,这并未显示任何结果,相反,我看到ERROR 315

另外,我想列出表名,我该如何获取这些名称?

更新 我已设法使用以下内容获得正确数量的表:

$result=mysql_query("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'vogaldes_fuse';")or die('ERROR 315' );

我的问题的最后一点仍然存在,如何将每个表名转换为一个字符串,然后我可以用它在select下拉列表中列出?

4 个答案:

答案 0 :(得分:1)

只需使用select TABLE_NAME from information_schema.tables删除vogaldes_fuse.数据库名称

创建表格使用的下拉列表

 $result = mysql_query("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'vogaldes_fuse'") or die('ERROR 315');
    if (mysql_num_rows($result) > 0) {


        echo "<select name='table_name'>";
        while ($row = mysql_fetch_array($result)) {
            echo "<option value='" . $row['TABLE_NAME'] . "'>" . $row['TABLE_NAME'] . "</option>";
        }
        echo "</select>";
    }

<强>已更新

对于选择TABLE_SCHEMA,除了某些表

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'vogaldes_fuse' AND TABLE_NAME NOT 
IN ( 
'hr_employees', 'hr_roles' 
)

答案 1 :(得分:0)

运行此

使用&#39;您的数据库名称&#39 ;; SHOW TABLES;

SELECT FOUND_ROWS();

答案 2 :(得分:0)

使用此

$sql = "SHOW TABLES FROM 'your db name'";
$result = mysql_query($sql);

if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_row($result)) {
echo "{$row[0]}</br>";
}

mysql_free_result($result);

希望这有帮助。

答案 3 :(得分:-1)

对于MySQL:

SELECT TABLE_NAME 来自INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE =&#39; BASE TABLE&#39; AND TABLE_SCHEMA =&#39; dbName&#39;