我正在尝试列出所有的mysql数据库及其各自的表,我目前正在使用它,但如果有更好的方法,任何人都可以推荐。
$q = $this->db->query('SHOW DATABASES');
$databases = $q->result_array();
foreach($databases as $db) {
$this->db->query('USE '. $db['Database']);
$q = $this->db->query('SHOW TABLES');
$tables = $q->result_array();
}
答案 0 :(得分:2)
您可以使用information_schema特殊数据库,该数据库包含描述所有其他数据库,表和列的表。
这样你只需要1个查询:
SELECT table_schema, table_name
FROM information_schema.tables
ORDER BY table_schema, table_name;