Новый Запрос Статус Запроса
Ответы на часто задаваемые вопросы
DmitriyNaumenko.ru > Служба Поддержки по Проектам Дмитрия Науменко > Ответы на часто задаваемые вопросы

Как быть, если нужно работать не с одной базой данных?

Ответ

Если вам нужно обращаться не к одной базе данных, то в файле database.php наряду с группой настроек:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "testci_user";
$db['default']['password'] = "testci";
$db['default']['database'] = "testci";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_unicode_ci";

нужно создать еще одну аналогичную группу, например:

$db['second_db']['hostname'] = "localhost";
$db['second_db']['username'] = "testci_user2";
$db['second_db']['password'] = "testci2";
$db['second_db']['database'] = "testci2";
$db['second_db']['dbdriver'] = "mysql";
$db['second_db']['dbprefix'] = "";
$db['second_db']['pconnect'] = FALSE;
$db['second_db']['db_debug'] = TRUE;
$db['second_db']['cache_on'] = FALSE;
$db['second_db']['cachedir'] = "";
$db['second_db']['char_set'] = "utf8";
$db['second_db']['dbcollat'] = "utf8_unicode_ci";

Для того, чтобы работать с разными базами, потребуется две разных переменных, например:

$DBOne = $this->load->database('default', TRUE);
$DBTwo = $this->load->database('second_db', TRUE);

Соответственно, обращение к базам при запросах будет идти уже не через $this->db, а через:

$DBOne->get('table');
$DBTwo->order_by('field','desc');

По такому же принципу можно работать и с числом баз больше двух.

Детали ответа
ID статьи: 18
Категория: CodeIgniter
Дата добавления: 2013-02-14 16:32:29
Просмотров: 1250

 ‹-Назад