CodeIgniter, руководство пользователя к версии 1.6.1


Подключение к базе данных

Существует два пути подключения к базе данных:

Автоматическое подключение

Установка автоматического подключения обеспечивает подгрузку и инициализацию класса работы с базами данных при открытии каждой страницы. Чтобы включить функцию автоматического подключения, добавьте слово 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();
и т.д...