【问题标题】:How to retrieve all table names from database?如何从数据库中检索所有表名?
【发布时间】:2014-04-27 15:29:38
【问题描述】:

我正在尝试从 MySQL 数据库中检索所有表名并将它们链接到下拉列表。然后我想将这些表名存储在一个表中并预览它们。

这是我的代码...

<?php 
$sql = "SHOW TABLES FROM $ip";
$result = mysql_query($sql);
?>
<form id="form1" name="form1" method="post" action="newloay.php">
<select name="select" id="select" required>
    <?php
     while($row =  mysql_fetch_array($result)){
    ?>
        <option> <?php print $row[0] ?> </option>
    <?php 
     }  ?>

    }
</select>

【问题讨论】:

  • 表格很大,但表格名称声称抱怨用户最近发现的物品照片
  • 您可能只使用查询直接填充下拉列表,而不是将表名存储在另一个表中,除非您将这些名称与其他数据一起使用。即使这样,您仍然可以使用连接从 MySQL 的模式中获取每个表名。
  • 来自 PHP.net,mysql_* 扩展名:This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information.
  • 这里的答案将对此有所帮助。 stackoverflow.com/questions/5439165/….

标签: php mysql sql


【解决方案1】:

MySQL

SELECT 
  table_name
FROM 
  my_schema.tables

my_schema 是你的架构名称,我猜是$ip

【讨论】:

    【解决方案2】:

    按照以下代码获取数据库中表的名称:

    <?php
    $dbname = 'mysql_dbname';
    
    if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
        echo 'Could not connect to mysql';
        exit;
    }
    
    $sql = "SHOW TABLES FROM $dbname";
    $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 "Table: {$row[0]}\n";
    }
    
    mysql_free_result($result);
    ?>
    

    希望对您有所帮助,更多详情请查看THIS PAGE

    【讨论】:

    • 虽然函数 mysql_list_tables() 看起来很有希望,但它不在您建议的代码中。如果这是故意的,为什么要链接?
    • 并且,在函数描述中:This function is deprecated. It is preferable to use mysql_query() to issue an SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] statement instead. 即使对于已弃用的 API,它也已弃用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2020-07-09
    • 2016-08-17
    相关资源
    最近更新 更多