我想检查数据库并先获取所有表名 从每个表格中的数据显示某种报告
$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
}
我正在以正确的方式做到这一点吗?
我该怎么办?
答案 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