Show all tables inside a MySQL database using PHP?

前端 未结 5 1042
孤城傲影
孤城傲影 2021-01-31 08:32

I\'m trying to show all the tables in my database. I\'ve tried this:

$sql = \"SHOW TABLES\";
$result = $conn->query($sql);
$tables = $result->fetch_assoc()         


        
相关标签:
5条回答
  • 2021-01-31 08:53

    SHOW TABLE_NAME is not valid. Try SHOW TABLES

    TD

    0 讨论(0)
  • 2021-01-31 08:55

    SHOW TABLES only lists the non-TEMPORARY tables in a given database.

    https://dev.mysql.com/doc/refman/5.0/en/show-tables.html

    0 讨论(0)
  • 2021-01-31 09:02

    Try this:

    SHOW TABLES FROM nameOfDatabase;
    
    0 讨论(0)
  • 2021-01-31 09:04
    <?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);
    ?>
    //Try This code is running perfectly !!!!!!!!!!
    


    0 讨论(0)
  • 2021-01-31 09:12

    How to get tables

    1. SHOW TABLES

    mysql> USE test;
    Database changed
    mysql> SHOW TABLES;
    +----------------+
    | Tables_in_test |
    +----------------+
    | t1             |
    | t2             |
    | t3             |
    +----------------+
    3 rows in set (0.00 sec)
    

    2. SHOW TABLES IN db_name

    mysql> SHOW TABLES IN another_db;
    +----------------------+
    | Tables_in_another_db |
    +----------------------+
    | t3                   |
    | t4                   |
    | t5                   |
    +----------------------+
    3 rows in set (0.00 sec)
    

    3. Using information schema

    mysql> SELECT TABLE_NAME
           FROM information_schema.TABLES
           WHERE TABLE_SCHEMA = 'another_db';
    +------------+
    | TABLE_NAME |
    +------------+
    | t3         |
    | t4         |
    | t5         |
    +------------+
    3 rows in set (0.02 sec)
    

    to OP

    you have fetched just 1 row. fix like this:

    while ( $tables = $result->fetch_array())
    {
        echo $tmp[0]."<br>";
    }
    

    and I think, information_schema would be better than SHOW TABLES

    SELECT TABLE_NAME
    FROM information_schema.TABLES 
    WHERE TABLE_SCHEMA = 'your database name'
    
    while ( $tables = $result->fetch_assoc())
    {
        echo $tables['TABLE_NAME']."<br>";
    }
    
    0 讨论(0)
提交回复
热议问题