Подключение к вашей базе данных
Вы можете подключиться к вашей базе данных, добавив эту строку кода в любую функцию, где она необходима, или в конструктор вашего класса, чтобы сделать базу данных доступной глобально в этом классе.
$db = \Config\Database::connect();
Если вышеуказанная функция не содержит никакой информации в первом параметре, она подключится к группе по умолчанию, указанной в файле конфигурации вашей базы данных. Для большинства пользователей это предпочтительный метод.
Существует удобный метод, который является просто оболочкой вокруг вышеприведенной строки и предоставлен для вашего удобства:
$db = db_connect();
Доступные параметры
- Имя группы базы данных, строка, которая должна совпадать с именем свойства класса конфигурации. Значение по умолчанию —
$config->defaultGroup. - true/false (булево). Возвращать ли общее соединение (см. Подключение к нескольким базам данных ниже).
Ручное подключение к базе данных
Первый параметр этой функции можно необязательно использовать для указания конкретной группы базы данных из файла конфигурации. Примеры:
Чтобы выбрать конкретную группу из вашего файла конфигурации, вы можете сделать это:
$db = \Config\Database::connect('group_name');
Где group_name — имя группы подключения из файла конфигурации.
Множественные подключения к одной базе данных
По умолчанию метод connect() каждый раз будет возвращать тот же экземпляр подключения к базе данных. Если вам нужно иметь отдельное подключение к той же базе данных, отправьте false в качестве второго параметра:
$db = \Config\Database::connect('group_name', false);
Подключение к нескольким базам данных
Если вам нужно подключиться к нескольким базам данных одновременно, вы можете сделать это следующим образом:
$db1 = \Config\Database::connect('group_one');
$db = \Config\Database::connect('group_two');
Примечание: измените слова «group_one» и «group_two» на конкретные имена групп, к которым вы подключаетесь.
Примечание
Вам не нужно создавать отдельные конфигурации баз данных, если вам нужно использовать только другую базу данных в рамках одного подключения. Вы можете переключаться на другую базу данных по мере необходимости, например, так: $db->setDatabase($database2_name);
Подключение с пользовательскими настройками
Вы можете передать массив настроек базы данных вместо имени группы, чтобы получить подключение, использующее ваши пользовательские настройки. Передаваемый массив должен иметь тот же формат, что и группы, определенные в файле конфигурации:
$custom = [
'DSN' => '',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
$db = \Config\Database::connect($custom);
Переподключение/поддержание соединения активным
Если время ожидания бездействия сервера базы данных превышено во время выполнения интенсивных операций PHP (например, обработки изображения), вам следует рассмотреть возможность отправки запроса на сервер с помощью метода reconnect(), прежде чем отправлять дальнейшие запросы, чтобы обеспечить сохранение или восстановление соединения.
Важно
Если вы используете драйвер базы данных MySQLi, метод reconnect() не отправляет запрос на сервер, а закрывает соединение, а затем подключается снова.
$db->reconnect();
Ручное закрытие соединения
Хотя CodeIgniter разумно заботится о закрытии подключений к вашей базе данных, вы можете явно закрыть соединение.
$db->close();
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/database/connecting.html