Codeigniter объединить из нескольких баз данных - PullRequest
2 голосов
/ 13 июля 2011

В настоящее время у меня есть этот не рабочий код в моей модели:

$this->db_site->order_by('id', 'random');
$select = $this->db_site->get_where('berichten', array('beantwoord' => 0, 'gelezen' => 0));   
$this->db->join('replymessages', 'replymessages.msgid != berichten.id');
$this->db->join('replymessages', 'replymessages.time < '.time()); 

В этом примере объединения успешно работают для запроса db_site. Существует ли метод для объединения из другой базы данных?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Боюсь, нет встроенного метода для объединения. Если базы данных находятся в одном и том же экземпляре базы данных, и вы можете предоставить пользователю доступ к обеим базам данных, вы можете присоединиться таким образом, добавив префикс имени базы данных в таблице, то есть database1.table1.

Альтернативой является объединение данных с использованием решения только в php.

1 голос
/ 14 июля 2011

In /config/database.php

Создание нового набора конфигурации для соединения с БД

$db['seconddb']['hostname'] = 'localhost';
$db['seconddb']['username'] = 'krish';
$db['seconddb']['password'] = 'pass';
$db['seconddb']['database'] = 'oOoOoO';
$db['seconddb']['dbdriver'] = 'mysql';
$db['seconddb']['dbprefix'] = '';
$db['seconddb']['pconnect'] = TRUE;
$db['seconddb']['db_debug'] = TRUE;
$db['seconddb']['cache_on'] = FALSE;
$db['seconddb']['cachedir'] = '';
$db['seconddb']['char_set'] = 'utf8';
$db['seconddb']['dbcollat'] = 'utf8_general_ci';
$db['seconddb']['swap_pre'] = '';
$db['seconddb']['autoinit'] = TRUE;
$db['seconddb']['stricton'] = FALSE;

Загрузка БД

$this->load->database('seconddb');

Для подключения к нескольким базам данных

$db1 = $this->load->database('default', TRUE);
$db2 = $this->load->database('seconddb', TRUE);

и синтаксис изменяет незначительный бит для активных записей.

Вместо

$this->db->query();

следует использовать

$db1->query();

и

$db2->query();

Итак, просто отредактируйте ваши запросы, как требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...