-
Notifications
You must be signed in to change notification settings - Fork 11
create
В goDB каждому подключению к базе соответствует отдельный объект класса go\DB\DB
(вернее, класса-потомка).
Простой пример создания:
$params = array(
'host' => 'localhost',
'username' => 'test',
'password' => 'test',
'dbname' => 'test',
'charset' => 'utf8',
'_debug' => true,
'_prefix' => 'p_',
);
$db = go\DB\DB::create($params, 'mysql');
$db->query('DELETE * FROM `important_data`');
Для создания объекта-подключения используется метод go\DB\DB::create()
, который первым аргументом получает параметры подключения (см. ниже),
а вторым - название адаптера (в нашем случае мы подключаемся к mysql-серверу).
Параметры подключения передаются в виде ассоциативного массива и делятся на две категории - системные параметры и, собственно, параметры подключения к базе.
Все параметры, названия которых начинаются на знак подчёркивания "_"
, являются системными.
Их действие одинаково для всех адаптеров.
Системные параметры могут быть следующими:
-
_adapter
- название адаптера. Можно указывать в списке параметров, а не отдельным аргументом вcreate()
. Это удобно, например, при создании объектов через хранилище (см. ниже)._adapter
в списке параметров имеет приоритет над аргументом вcreate()
. -
_lazy
- отложенное подключение. Для подробностей см. соответствующий раздел. По умолчанию включено (TRUE
). -
_prefix
- указывает префикс таблиц (см. раздел про префикс таблиц). -
_debug
- указание обработчика отладочной информации (см. соответствующий раздел). -
_compat
- настройки совместимости.
Всё, что не начинается на знак подчёркивание - параметры подключения к базе. Их структура зависит от типа адаптера. У MySQL это будет - хост, имя пользователя, пароль. У SQLite - имя файла с базой и другие параметры.
Параметры могут быть обязательными и необязательными (имя базы данных - можно указать и она будет выбрана сразу же, можно не указывать).
Также сюда могут относится параметры не связанные напрямую с самим процессом подключения.
Например, для MySQL можно указать кодировку (параметр charset
) и не нужно в самом начале вызывать SET NAMES
(что особенно неудобно с учётом возможности отложенного подключения).
Структуру параметров подключения для каждого адаптера уточняйте в документации к этому адаптеру.
Обработка ошибок в библиотеке построена на основе системы исключений.
При вызове create()
можно словить следующие исключения:
go\DB\Exceptions\Config (один из подклассов) - ошибка в параметрах (не указан адаптер, неизвестный адаптер, неизвестный системный параметр, не указан обязательный параметр подключения и всё в этом духе).
Connect - ошибка при подключении к базе. Происходит при непосредственной попытке подключения: если используется отложенное подключение, то на этом этапе произойти не может.
Есть ещё способы создания объектов через хранилище (Storage). Эти способы могут быть удобными в некоторых случаях и описаны в соответствующем разделе.
Вместо go\DB\DB::create()
можно использовать более короткий синоним: go\DB\create()
.
go\DB\DB go\DB\create(array $params [, string $adapter]);
Использование этого варианта и короче и более правильно.
Единственный печальный минус: нужно быть уверенным, что файл DB.php
уже подключён (при использовании go\DB\DB::create()
сработает автозагрузка).