Настройка базы данных
CodeIgniter имеет файл конфигурации, который позволяет хранить значения подключения к базе данных (имя пользователя, пароль, имя базы данных и т. д.). Файл конфигурации расположен в application/config/database.php. Также можно задать значения подключения к базе данных для конкретных средах, поместив database.php в соответствующую папку конфигурации среды.
Настройки конфигурации хранятся в многомерном массиве с таким прототипом:
$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
)
);
Вы можете указать любое количество резервных подключений.
Мы используем многомерный массив, а не более простой, чтобы иметь возможность хранить несколько наборов значений подключения. Если, например, вы запускаете несколько сред (разработки, производства, тестирования и т. д.) в рамках одной установки, вы можете настроить группу подключений для каждой из них, а затем переключаться между группами по мере необходимости. Например, чтобы настроить среду «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 и т. д. Должен быть указан строчными буквами. |
| 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.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/database/configuration.html