Я пытаюсь перечислить все базы данных 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();
}
Вы можете использовать специальную базу данных information_schema, в которой есть таблицы, описывающие все другие базы данных, таблицы и столбцы.
Таким образом вам нужен только один запрос:
SELECT table_schema, table_name
FROM information_schema.tables
ORDER BY table_schema, table_name;
information_schema
для всех установок MySQL по умолчанию? Также это доступно v4 + или v5 +?SHOW
как вы уже сделали.