Подключение к базе данных
Существует два пути подключения к базе данных:
Автоматическое подключение
Установка автоматического подключения обеспечивает подгрузку и инициализацию класса работы с базами данных при открытии каждой страницы. Чтобы включить функцию автоматического подключения, добавьте слово database к массиву в следующем файле:
application/config/autoload.php
Ручное подключение
Если не все страницы требуют подключения к базе данных, то его можно выполнять вручную, добавив одну строку кода там где требуется обеспечить доступ. Эту строку кода можно добавить в конструктор класса, чтобы сделать подключение доступным в рамках всего класса.
$this->load->database();
Если данная функция не содержит никакой информации в качестве первого параметра, то подключение будет выполнено согласно настройкам по-умолчанию, указанным в файле конфигурации. Для большинства случаев это наиболее приемлемый вариант использования функции.
В качестве первого параметра функции опционально можно передавать наименование группы настроек подключения из вашего конфигурационного файла, а также, указывать параметры подключения напрямую, без внесения их в файл конфигурации. Примеры:
Чтобы указать конкретную группу настроек из файла конфигурации, можно выполнить следующее:
$this->load->database('group_name');
Где group_name это имя группы настроек из вашего файла конфигурации работы с базами данных.
Чтобы подключиться вручную к нужной базе, можно передать массив параметров:
$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$this->load->database($config);
За более подробной информацией по каждому из этих значений обращайтесь к странице Конфигурация.
Также вы можете передать параметры подключения в виде DSN. Строка DSN должна быть составлена согласно образцу:
$dsn = 'dbdriver://username:password@hostname/database';
$this->load->database('$dsn');
Обратите внимание, что при передаче DSN вы не сможете использовать некоторые значения по-умолчанию, которые могли бы задействовать в случае работы с конфигурационным массивом.
Подключение к нескольким базам данных
Если требуется одновременное подключение к более чем одной базе данных, следует выполнить следующее:
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);
Замечание: измените слова "group_one" и "group_two" на необходимые названия групп из вашего файла конфигурации (или вы можете передать параметры напрямую, как показано выше).
Если установить второй параметр в TRUE (boolean), то функция вернёт объект базы данных.
Если вы подключаетесь таким образом, то необходимо использовать имя получаемого объекта для вызова функций, вместо синтаксиса, указанного в данном руководстве. Другими словами, вместо:
$this->db->query();
$this->db->result();
и т.д...
необходимо ставить:
$DB1->query();
$DB1->result();
и т.д...