2012-03-05 2 views
1

Я пытаюсь подключиться к другой базе данных, чем в моем конфигурационном файле базы данных.Где я могу поместить значения конфигурации базы данных в Codeigniter?

Я был в состоянии сделать это с помощью следующих в моей модели:

 $wp['hostname'] = "localhost"; 
     $wp['username'] = "root"; 
     $wp['password'] = ""; 
     $wp['database'] = "transfer"; 
     $wp['dbdriver'] = "mysql"; 
     $wp['dbprefix'] = ""; 
     $wp['pconnect'] = FALSE; 
     $wp['db_debug'] = TRUE; 
     $wp['cache_on'] = FALSE; 
     $wp['cachedir'] = ""; 
     $wp['char_set'] = "utf8"; 
     $wp['dbcollat'] = "utf8_general_ci"; 

     $wpDB = $this->load->database($wp, TRUE); 

, а затем выполнение запросов следующим образом: $query = $wpDB->get();

Я могу только заставить его работать, когда значение конфигурации является в самой модели (так что было бы много дублирования). Я попытался помещать конфигурационный массив в конструктор, но я получаю сообщение об ошибке, которое он не может найти.

Где я могу поместить конфигурационный массив, поэтому мне не нужно его дублировать, и это доступно во всей модели?

ответ

3

Конфигурация базы данных обычно идет в config/database.php. Можно настроить несколько соединений с базой данных и хранить их с разными названиями групп:

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = 'host1'; 
$db['default']['username'] = 'user1'; 
$db['default']['password'] = '******'; 
$db['default']['database'] = 'my_db'; 

$db['other']['hostname'] = 'host2'; 
$db['other']['username'] = 'user2'; 
$db['other']['password'] = '******'; 
$db['other']['database'] = 'my_other_db; 

$active_group относится к группе по умолчанию при загрузке класса базы данных. Для того, чтобы подключиться к другой группе в вашей модели, вы можете использовать это в __construct методы модели:

$this->db = $this->load->database('other', TRUE); 

Хотя это не дружит с более гибким подходом $this->load->model('model_name', 'alias', $config), было бы легче.

Подробнее: http://codeigniter.com/user_guide/database/connecting.html

2

я думаю, что this может помочь вам, прямо из CodeIgniter форума :)

+0

Ссылки исправны в ответах, но не сами по себе. Пожалуйста, разместите соответствующую информацию и используйте ссылку в качестве ссылки. –

+0

@ Мадмартиган прав; ваш ответ может быть удален, если вы не редактируете и не добавляете некоторые детали. Для получения дополнительной информации, пожалуйста, поиск по [meta] для того, что есть и не является ответом. Благодарю. – Will

2

Существует каталог конфигурации в Code воспламенитель, где вы можете добавить свой собственный конфигурационный файл:

system/application/config 

В той же директории есть файл autoload.php, где вы можете указать, какие дополнительные файлы конфигурации вы хотите загрузить.

0

Вы можете использовать файл конфигурации из CodeIgniter.

Чтобы получить конфигурационный вар, используйте:

$this->config->item('item name'); 

Более подробную информацию в docs

0

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

системы/приложения /config/database.php

Смежные вопросы