Конфигурация базы данных
CodeIgniter содержит конфигурационный файл, который позволяет хранить ваши настройки подключения к базе данных (имя пользователя, пароль, имя бд и т.д). Файл config находится в application/config/database.php. Вы также можете установить значения подключения к базе данных для конкретных режимов разработки поместив database.php в соответствующей среде папку файл config.
Параметры конфигурации хранятся в многомерном массиве с этим прототипом:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
);
Некоторые драйверы баз данных (таких как, PDO, PostgreSQL, Oracle, ODBC) может потребоваться полная строка DSN. В этом случае вы должны использовать ‘dsn’ настройку конфигурации если вы используете базовое расширение драйвера PHP:
// PDO
$db['default']['dsn'] = 'pgsql:host=localhost;port=5432;dbname=database_name';
// Oracle
$db['default']['dsn'] = '//localhost/XE';
Примечание
Если вы не укажете требуемую DSN строку для драйвера, CodeIgniter постарается построить его с остальными значениями.
Примечание
Если вы укажете DSN строку и в ней будут отсутствовать некоторые допустимые параметров (такие как кодировка базы данных), которые присутствуют в других полях конфигурации, CodeIgniter примет их.
Можно также задать отказоустойчивые настройки для ситуации, когда основное соединение не удается подключиться по какой то причине. Это может быть достигнуто путем создания отказоустойчивого подключения:
$db['default']['failover'] = array(
array(
'hostname' => 'localhost1',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE
),
array(
'hostname' => 'localhost2',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE
)
);
Вы можете указать столько отказоустойчивых настроек, сколько вам нужно.
Причина почему мы используем многомерный массив, а не более простой, это возможность дополнительно сохранить несколько наборов значений подключения. Если, например, вы работаете в нескольких режимах разработки (development, production, test и т.д) в рамках одной установки, вы можете создать группу соединений для каждого и переключатся между группами по мере необходимости. Например, чтобы создать режим разработки “test” следует сделать следующее:
$db['test'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'database_name',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'compress' => FALSE,
'encrypt' => FALSE,
'stricton' => FALSE,
'failover' => array()
);
Затем, чтобы глобально сообщить системе об использовании этого режима достаточно указать значение переменной в файле конфигурации:
$active_group = 'test';
Примечание
Имя ‘test’ является произвольным. Оно может быть любым. По умолчанию мы используем слово “default” для основного подключения, но его тоже можно переименовать в что-то более актуальное для вашего проекта.
Построитель запросов
Класс Построителя Запросов глобально включается или отключается путем установки переменной $query_builder в файле конфигурации базы данных в TRUE/FALSE (булев).Значение по умолчанию - TRUE. Если вы не используете класс построителя запросов, установка его в FALSE будет использовать меньше ресурсов, когда классы баз данных инициализируются.
$query_builder = TRUE;
Примечание
Некоторые классы CodeIgniter такие как Сессии требуют Построитель запросов, чтобы иметь возможность получить доступ к определенной функциональности.
Объяснение значений:
Имя конфигурации | Описание |
---|---|
dsn | Строка DSN соединения (последовательность конфигурации: все-в-одном). |
hostname | Имя сервера базы данных. Обычно это ‘localhost’. |
username | Имя пользователя, используемое для подключения к базе данных. |
password | Пароль, используемый для подключения к базе данных. |
database | Имя базы данных, используемое для подключения к базе данных. |
dbdriver | Тип базы данных: mysqli, postgre, odbc, etc. Должны быть указаны в нижнем регистре. |
dbprefix | Дополнительный префикс, который будет добавлен к имени таблицы при выполнении запросов построителя запросов. Допускает нескольким установкам CodeIgniter использовать одну базу данных. |
pconnect | TRUE/FALSE (булево) - Стоит ли использовать постоянное соединение. |
db_debug | TRUE/FALSE (булево) - Стоит ли отображать ошибки базы данных. |
cache_on | TRUE/FALSE (булево) - Включено ли кеширование базы данных, смотрите также класс кеширования базы данных. |
cachedir | Абсолютный путь каталога кеша на сервере к запросам базы данных. |
char_set | Кодировка используемая при работе с базой данных. |
dbcollat | Сопоставление кодировки в работе с базой данных Примечание Используется только с ‘mysql’ и ‘mysqli’ драйверами. |
swap_pre | Префикс таблицы по умолчанию, который должен быть заменен с dbprefix. Это полезно для распределенных приложений, где вы можете запустить написаные вручную запросы с нужным префиксом, установленным конечным пользователем. |
schema | Схемы базы данных, по умолчанию ‘public’. Используется с PostgreSQL и ODBC драйверами. |
encrypt | Будет ли использовано зашифрованное соединение.
|
compress | Нужно ли использовать сжатие на клиенте (MySQL только). |
stricton | TRUE/FALSE (булев) - Устанавливать ли соединения “Сторогого Режима”, хорошо для обеспечения строгого SQL при разработке приложений. |
port | Порт базы данных. Чтобы использовать это значение следует добавить строку в массив данных конфигурации.
$db['default']['port'] = 5432;
|
Примечание
В зависимости от используемой платформы базы данных (MySQL, PostgreSQL и др.) не все значения будут необходимы. Например, при использовании SQLite вам не нужно будет указывать имя пользователя или пароль и именем базы данных будет путь к файлу базы данных. Вышеуказанная информация предполагает, что вы используете MySQL.