我正在尝试显示数据库中所有表的列表
我有以下代码:
$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
下拉列表中列出?
答案 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;