Skip to content
Oleg Grigoriev edited this page Mar 26, 2016 · 5 revisions

Создание подключения к базе

В 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

Есть ещё способы создания объектов через хранилище (Storage). Эти способы могут быть удобными в некоторых случаях и описаны в соответствующем разделе.

Короткий синоним go\DB\create()

Вместо go\DB\DB::create() можно использовать более короткий синоним: go\DB\create().

go\DB\DB go\DB\create(array $params [, string $adapter]);

Использование этого варианта и короче и более правильно. Единственный печальный минус: нужно быть уверенным, что файл DB.php уже подключён (при использовании go\DB\DB::create() сработает автозагрузка).

Clone this wiki locally