CodeIgniter Работа с несколькими базами данных

0

Я пытаюсь перечислить все базы данных 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();             
}
Теги:
codeigniter

1 ответ

2
Лучший ответ

Вы можете использовать специальную базу данных information_schema, в которой есть таблицы, описывающие все другие базы данных, таблицы и столбцы.

Таким образом вам нужен только один запрос:

SELECT table_schema, table_name
FROM information_schema.tables
ORDER BY table_schema, table_name;
  • 0
    Я учащийся. Скажите, пожалуйста, доступна ли эта таблица information_schema для всех установок MySQL по умолчанию? Также это доступно v4 + или v5 +?
  • 0
    @Shishant он был добавлен только в mysql, начиная с версии 5.0.2: dev.mysql.com/tech-resources/articles/mysql-datadictionary.html - до этого вы должны использовать SHOW как вы уже сделали.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню