Где я могу поместить значения конфигурации базы данных в Codeigniter? - PullRequest
1 голос
/ 05 марта 2012

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

Я смог сделать это с помощью следующей модели:

        $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();

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

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

Ответы [ 5 ]

3 голосов
/ 05 марта 2012

Конфигурация базы данных обычно входит в 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 голосов
/ 05 марта 2012

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

system/application/config

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

2 голосов
/ 05 марта 2012

я думаю, что это может помочь вам, прямо с форума codeigniter:)

0 голосов
/ 05 марта 2012

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

system / application / config / database.php

0 голосов
/ 05 марта 2012

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

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

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

Больше информации в документах

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