Skip to content
Grigoriev Oleg edited this page Apr 21, 2012 · 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 - указание обработчика отладочной информации (см. соответствующий раздел).

Параметры подключения к базе

Всё, что не начинается на знак подчёркивание - параметры подключения к базе. Их структура зависит от типа адаптера. У 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