Я работаю над каркасом Codeigniter, и мне нужно переключиться между различными базами данных для запуска запросов.Переключатель Codeigniter между базами данных
В соответствии с документами Codeigniter 3.0.6 я могу использовать $ this-> db-> db_select ('db_name') для динамического изменения БД. Но это, похоже, не работает вообще.
Я создал песочницу, как это:
$this->load->database();
$this->load->dbutil();
br('========Start========');
$dbs = $this->dbutil->list_databases();
foreach ($dbs as $db)
{
if ($db == 'information_schema')
continue;
br($db);
$this->db->db_select($db);
if ($this->db->table_exists('users'))
br('Yes');
else
br('No');
echo $this->db->last_query();
//$tables = $this->db->list_tables();
//pp($tables);
br('-----------------------');
}
br('========End========');
Результат: он печатает разные имена БД, но ДА/НЕТ и last_query все то же самое, и он всегда работает на первой БД.
Итак, я создаю еще один тест для ручного переключения БД, и результат будет таким же.
Я также попытаться удалить имя БД в конфигурации/database.php и установить $ this-> db-> db_select («my_third_db_name») и всегда выполнить запрос на третьей БД.
Я что-то пропустил в коде? или здесь есть ошибка?
Благодаря
P/S: Im подключение только 1 хозяин, и есть много баз данных в этом узле. А соединение работают нормально
Имеются ли те же учетные данные (идентификатор пользователя/пароль) для обеих баз данных? – RiggsFolly
Этот вопрос, как ответить на [эта ссылка] (http://stackoverflow.com/questions/36742213/can-we-use-two-database-in-same-view-in-codeigniter/36746362#36746362) – elddenmedio
@ RiggsFolly Im подключается только к 1 хосту, и он работает нормально. Я просто хочу переключить БД, а не на хост –