Codeigniter – множественные подключения к базе данных

У меня проблема с несколькими подключениями db в Codeigniter. На моем database.php я настроил две базы данных.

$active_group = 'cms'; $active_record = FALSE; $db['cms']['hostname'] = 'localhost'; $db['cms']['username'] = 'yoloo_cms'; $db['cms']['password'] = 'password'; $db['cms']['database'] = 'yoloo_cms'; $db['cms']['dbdriver'] = 'mysql'; $db['cms']['dbprefix'] = ''; $db['cms']['pconnect'] = TRUE; $db['cms']['db_debug'] = TRUE; $db['cms']['cache_on'] = FALSE; $db['cms']['cachedir'] = ''; $db['cms']['char_set'] = 'utf8'; $db['cms']['dbcollat'] = 'utf8_general_ci'; $db['cms']['swap_pre'] = ''; $db['cms']['autoinit'] = TRUE; $db['cms']['stricton'] = FALSE; $db['hazeleger']['hostname'] = 'localhost'; $db['hazeleger']['username'] = 'yoloo_websites'; $db['hazeleger']['password'] = 'password2'; $db['hazeleger']['database'] = 'yoloo_hazeleger'; $db['hazeleger']['dbdriver'] = 'mysql'; $db['hazeleger']['dbprefix'] = ''; $db['hazeleger']['pconnect'] = TRUE; $db['hazeleger']['db_debug'] = TRUE; $db['hazeleger']['cache_on'] = FALSE; $db['hazeleger']['cachedir'] = ''; $db['hazeleger']['char_set'] = 'utf8'; $db['hazeleger']['dbcollat'] = 'utf8_general_ci'; $db['hazeleger']['swap_pre'] = ''; $db['hazeleger']['autoinit'] = TRUE; $db['hazeleger']['stricton'] = FALSE; 

В моей модели я использую это, когда хочу подключиться к другому db, чем обычный:

 function __construct() { parent::__construct(); $this->load->database('hazeleger',TRUE); } 

Но в любое время codeigniter подключается к cms. Когда я удаляю

 $active_group = 'cms'; $active_record = FALSE; 

Ошибка кодирования приводит к ошибке. Когда я попробовал это

 function __construct() { parent::__construct(); $db2 = $this->load->database('hazeleger',TRUE); } function test() { $query = "SELECT * FROM cms_modules"; $result = $db2->db->query($query); return $db2->result(); } 

Это дает ошибку. Variabele db2 не существует. Я просто хочу выбрать, на каждой модели, с которой я хочу подключиться. Но не работает. Кто-нибудь знает, как я могу работать с разными базами данных на моделях.

Большое спасибо!!

Вы должны сохранить переменную $ db2 как поле класса. Вы можете получить доступ к $ this-> db2 …

Это происходит потому, что вы, скорее всего, установили в /application/config/autoload.php, что библиотека базы данных автоматически загружается / создается.

Откройте autoload.php и найдите эту строку:

  $autoload['libraries'] = array('database'); 

Удалите «базу данных» из массива и сохраните. Теперь он должен работать в ваших контроллерах по назначению.

для ссылки будущих посетителей, загрузка будет осуществляться по следующим направлениям:

 $this->db2 = $this->load->database('hazeleger',true); 

Вы должны изменить класс db2

  $query = "SELECT * FROM cms_modules"; $result = $this->db2->query($query); return result();