php / mysql获取数据库中的所有表和列

时间:2014-02-01 07:45:43

标签: php mysql sql

我想检查数据库并先获取所有表名 从每个表格中的数据显示某种报告

        $query = $db3->query("SELECT `table_name` from INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'db3' ") or die("$db3->error");
        while ( $table = $query->fetch_assoc() )
        {
            //echo $table['table_name'].'<br />';
             $t = trim($table['table_name']);
            //i get all table names now i want to select all columns from that table name :
            $select = $db3->query("SELECT * FROM ".$t." ") or die($db3->error);
            $row = $select->fetch_assoc();
            // checking to see if query worked fine
            echo gettype($row);
            //it returns NULL
             }
我正在以正确的方式做到这一点吗?

我该怎么办?

3 个答案:

答案 0 :(得分:1)

出于安全原因,您应该拥有要从中生成报告的数据库/表的白名单。查询所有表假设所有将来的表都需要成为此系统的一部分。

您可以使用show columns from tableName查询每个表中的列并迭代结果。

答案 1 :(得分:0)

您可以在mysql中使用此查询

的MySQL&GT; SELECT table_name,table_type,engine

-> FROM information_schema.tables

-> WHERE table_schema = 'db5'

-> ORDER BY table_name DESC;

答案 2 :(得分:0)

SELECT table_name, column_name FROM Information_schema.columns WHERE table_name like '%example%' ORDER BY table_name DESC

或者你可以试试这个

SELECT table_name, column_name FROM Information_schema.columns WHERE column_name like '%example%' ORDER BY table_name DESC