\DB

Работа с базой данных

В этом классе содержится строка соединения с базой и методы для чтения/записи данных в базу. Также в этом классе содержатся методы, которые помогают абстрагироваться от конкретной СУБД. Этот класс выполнен по шаблону Singleton.

Summary

Methods
Properties
Constants
getInstance()
nullToZero()
tablePrefix()
datetime()
exec()
tableName()
getRecord()
getRecordBy()
getRecordBy___()
getRecordByCode()
$connection
$error
No constants found
No protected methods found
$_dbType
N/A
No private methods found
No private properties found
N/A

Properties

$connection

$connection

Соединение с БД

$error

$error

Информация об ошибке соединения

$_dbType

$_dbType

Тип БД: pgsql, mysql, odbc

Methods

getInstance()

getInstance() : \DB

Возвращает единственный экземпляр класса.

Returns

\DB

Единственный экземпляр

nullToZero()

nullToZero(string$field) : string

Дополняет запрос, "coalesce($field, 0)"

Оборачивает переданное значение или название поля в "coalesce($field, 0)"

Parameters

string $field

Поле, значение или параметр, для которого необходмио изменить запрос

Returns

string —

Обернутое значение.

Пример

$this->updateParentAmount($parent_id, null, array(
  'PlanIncome' => 'Amount',
  'PlanExpense' => 'CostAmount',
  'PlanProfit' => $this->_DB->nullToZero('Amount') . ' - '
         . $this->_DB->nullToZero('CostAmount'),
));

tablePrefix()

tablePrefix() : string

Получить префикс в названиях таблиц.

Returns

string —

Используемый префикс в названии таблиц.

datetime()

datetime(bool$actual) : string

Текущее время из БД.

В целях оптимизации производительности это время возвращается из БД при первом обращении к методу. При последующих вызовах метода обращение к БД не происходит, будет возвращено время, полученное при первом вызове метода.

Parameters

bool $actual

Не обязательный параметр. По умолчанию false. Если true, то для получения актуального времени будет выполнен принудительный запрос к БД незавимимо от того, вызывался ли этот метод ранее.

Returns

string —

Дата-время в формате Y-m-d H:i:s.ms

exec()

exec(string$sql, array$params, array$prepare_type, int$fetch_type) : array[]

Выполнить запрос на БД

Parameters

string $sql

Текст SQL запроса

array $params

Необязательный параметр, по умолчанию null. Ассоциативный массив с параметрами для запроса, например:

array(
    ':param1' => 'value1',
    ':param2' => $value2,
)
array $prepare_type

Необязательный параметр, по умолчанию array(PDO::ATTR_EMULATE_PREPARES => true). Ассоциативный массив с параметрами для PDO::prepare.

int $fetch_type

Необязательный параметр, по умолчанию PDO::FETCH_ASSOC. Параметр для PDOStatement::fetchAll.

Returns

array[] —

Результат PDOStatement::fetchAll: массив со строками, каждая строка - ассоциативный массив (ключи - названия полей).

tableName()

tableName(string$table) : string

Получить название таблицы с учетом префикса

Parameters

string $table

Название таблицы. Название может быть в формате {account} (рекомендуется) или iris_account.

Returns

string —

Полное название таблицы.

Пример

// Корректное использование
$DB->tableName('{account}'); // iris_account
// Нежелательное использование
$DB->tableName('iris_account'); // iris_account
// Некорректное использование
$DB->tableName('account'); // account

getRecord()

getRecord(string$id, string$table, string|array$fields) : array|false

Прочитать одну запись из БД

Parameters

string $id

Идентификатор записи

string $table

Название таблицы, рекомендуется с {}

string|array $fields

Не обязательный параметр. Список колонок строкой через запятую либо массивом, по умолчанию '*'

Returns

array|false —

Если данные найдены, то ассоциативный массив со значениями, иначе false.

Пример

// Получить запись из таблицы iris_TaskTarget с Id = $targetid
$target = $this->_DB->getRecord($targetid, '{TaskTarget}',
    array('name', 'termhours', 'termminutes'));

getRecordBy()

getRecordBy(mixed$filter_field, mixed$filter_value, mixed$table, string|array$fields) : array|false

Прочитать одну запись из БД по полю

Этот метод используется для "магических" методов getRecordBy___().

Parameters

mixed $filter_field

Название поля, по которому выполняется фильтрация

mixed $filter_value

Значение поля, по которому выполняется фильтрация

mixed $table

Название таблицы, рекомендуется с {}

string|array $fields

Не обязательный параметр. Список колонок строкой через запятую либо массивом, по умолчанию '*'

Returns

array|false —

Если данные найдены, то ассоциативный массив со значениями, иначе false.

getRecordBy___()

getRecordBy___(mixed$filter_value, string$table, string$fields) : array|false

"Магический" метод. Получить запись по полю, указанному вместо ___.

Parameters

mixed $filter_value
string $table
string $fields

Returns

array|false

getRecordByCode()

getRecordByCode(mixed$filter_value, string$table, string$fields) : array|false

Пример использования "магического" метода DB::getRecordBy___(). Получить запись по полю Code.

Parameters

mixed $filter_value
string $table
string $fields

Returns

array|false