【问题标题】:How do I display tables from a database?如何显示数据库中的表?
【发布时间】:2016-06-13 16:31:27
【问题描述】:

我正在尝试使用 PHP 将 MySQL 数据库中的表放入 HTML 页面中。
我是 PHP 初学者,我遇到了 mysqli_query 函数的问题。

这是我的 PHP 代码:

// connect to the db
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'testdb';
$connection = mysqli_connect($host, $user, $pass, $db) or die("cannot connect to db");

// show the tables
$result = mysqli_query($connection, 'SHOW TABLES') or die ('cannot show    tables');
while($tableName = mysqli_fetch_row($result)) {
  $table = $tableName[0];
  echo '<h3>', $table, '</h3>';
  $result2 = mysqli_query($table, 'SHOW COLUMNS FROM') or die("cannot show columns");
  if(mysqli_num_rows($result2)) {
    echo '<table cellpadding = "0" cellspacing = "0" class "db-table">';
    echo '<tr><th>Field</th><th>Type</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>';
    while($row2 = mysqli_fetch_row($result2)) {
      echo '<tr>';
      foreach ($row2 as $key=>$value) {
        echo '<td>',$value, '</td>';
      }
      echo '</tr>';
    }
    echo '</table><br />';
  }
}

不幸的是,我收到了这个错误:

警告:mysqli_query() 期望参数 1 为 mysqli,字符串在 C:\xampp\htdocs\test\showtables.php 在第 26 行,无法显示列。

我也尝试过使用mysql_query 函数,但遇到另一个错误,然后我将其改回mysqli_query 函数。

【问题讨论】:

标签: php mysqli


【解决方案1】:

此代码向您显示所有表格和表格行。我试试看有没有用

<?PHP
    $host = 'localhost';
    $user = 'root';
    $pass = '';
    $db = 'testdb';

    $mysqli = new mysqli($host, $user, $pass, $db);

    //show tables
    $result = $mysqli->query("SHOW TABLES from testdb");
    //print_r($result);
    while($tableName = mysqli_fetch_row($result))
    {
        $table = $tableName[0];
        echo '<h3>' ,$table, '</h3>';
        $result2 = $mysqli->query("SHOW COLUMNS from ".$table.""); //$result2 = mysqli_query($table, 'SHOW COLUMNS FROM') or die("cannot show columns");
        if(mysqli_num_rows($result2))
        {
            echo '<table cellpadding = "0" cellspacing = "0" class "db-table">';
            echo '<tr><th>Field</th><th>Type</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>';
            while($row2 = mysqli_fetch_row($result2))
            {
                echo '<tr>';
                foreach ($row2 as $key=>$value)
                {
                    echo '<td>',$value, '</td>';
                }
                echo '</tr>';
            }
            echo '</table><br />';
        }
    }
?>

样本输出:

【讨论】:

    【解决方案2】:

    在第二次调用mysqli_query 函数时,您传入的是表名而不是连接。试试这样的:

    $result2 = mysqli_query($connection, "SHOW COLUMNS FROM $table") or die("cannot show columns");

    http://php.net/manual/en/mysqli.query.php

    【讨论】:

    • 我试过了,但现在显示“死亡消息”:无法显示列..还是有问题
    • 确保您使用双引号 ($connection, "SHOW COLUMNS FROM $table") 或连接 ($connection, 'SHOW COLUMNS FROM ' . $table)。见Difference between single and double quotes in PHP
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2019-09-05
    • 2016-12-19
    • 2017-07-28
    相关资源
    最近更新 更多