Использование нескольких баз данных в CodeIgniter - PullRequest
11 голосов
/ 29 сентября 2011

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я новичок в веб-разработке

СЦЕНАРИЙ: я создаю веб-приложение, которое использует ion_auth для управления всей информацией пользователя / администратора (использует базу данных MySQL), и у каждого пользователя есть своисобственная база данных (в том числе MySQL) для основных приложений.Я автоматически загрузил базу данных, которую я использую для ion_auth, в файле Applicaton / config / database.php в CodeIgniter.Я использую стандартный формат MVC (отдельные модели, относящиеся к каждой базе данных).

ВОПРОС: Мне нужно знать, как легко и эффективно использовать несколько баз данных в CodeIgniter.Нужно ли связывать две схемы базы данных вместе, или CodeIgniter сделает это для меня?Существуют ли какие-либо ресурсы для решения этой проблемы (у меня были проблемы с поиском такого)?

Большое спасибо за вашу помощь!

1 Ответ

23 голосов
/ 29 сентября 2011

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

$db['a']['hostname'] = 'localhost';
$db['a']['username'] = 'user';
$db['a']['password'] = 'pw';
$db['a']['database'] = 'db1';
...

$db['b']['hostname'] = 'localhost';
$db['b']['username'] = 'user';
$db['b']['password'] = 'pw';
$db['b']['database'] = 'db2';
...

//set the default db
$active_group = 'a';

затем в вашей модели инициализируйте переменную класса:

private $db_b;

и в конструкторе установите его следующим образом

__construct()
{
   ...
   $this->db_b = $this->load->database('b', TRUE); 
}

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

$this->db_b->query('YOUR QUERY');

и, очевидно, по умолчанию, как показано ниже:

$this->db->query('YOUR QUERY');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...