$connection
$connection
Соединение с БД
Работа с базой данных
В этом классе содержится строка соединения с базой и методы для чтения/записи данных в базу. Также в этом классе содержатся методы, которые помогают абстрагироваться от конкретной СУБД. Этот класс выполнен по шаблону Singleton.
getInstance() : \DB
Возвращает единственный экземпляр класса.
Единственный экземпляр
nullToZero(string$field) : string
Дополняет запрос, "coalesce($field, 0)"
Оборачивает переданное значение или название поля в "coalesce($field, 0)"
string | $field | Поле, значение или параметр, для которого необходмио изменить запрос |
Обернутое значение.
$this->updateParentAmount($parent_id, null, array(
'PlanIncome' => 'Amount',
'PlanExpense' => 'CostAmount',
'PlanProfit' => $this->_DB->nullToZero('Amount') . ' - '
. $this->_DB->nullToZero('CostAmount'),
));
datetime(bool$actual) : string
Текущее время из БД.
В целях оптимизации производительности это время возвращается из БД при первом обращении к методу. При последующих вызовах метода обращение к БД не происходит, будет возвращено время, полученное при первом вызове метода.
bool | $actual | Не обязательный параметр. По умолчанию false. Если true, то для получения актуального времени будет выполнен принудительный запрос к БД незавимимо от того, вызывался ли этот метод ранее. |
Дата-время в формате Y-m-d H:i:s.ms
exec(string$sql, array$params, array$prepare_type, int$fetch_type) : array[]
Выполнить запрос на БД
string | $sql | Текст SQL запроса |
array | $params | Необязательный параметр, по умолчанию null. Ассоциативный массив с параметрами для запроса, например:
|
array | $prepare_type | Необязательный параметр, по умолчанию array(PDO::ATTR_EMULATE_PREPARES => true). Ассоциативный массив с параметрами для PDO::prepare. |
int | $fetch_type | Необязательный параметр, по умолчанию PDO::FETCH_ASSOC. Параметр для PDOStatement::fetchAll. |
Результат PDOStatement::fetchAll: массив со строками, каждая строка - ассоциативный массив (ключи - названия полей).
tableName(string$table) : string
Получить название таблицы с учетом префикса
string | $table | Название таблицы. Название может быть в формате {account} (рекомендуется) или iris_account. |
Полное название таблицы.
// Корректное использование
$DB->tableName('{account}'); // iris_account
// Нежелательное использование
$DB->tableName('iris_account'); // iris_account
// Некорректное использование
$DB->tableName('account'); // account
getRecord(string$id, string$table, string|array$fields) : array|false
Прочитать одну запись из БД
string | $id | Идентификатор записи |
string | $table | Название таблицы, рекомендуется с {} |
string|array | $fields | Не обязательный параметр. Список колонок строкой через запятую либо массивом, по умолчанию '*' |
Если данные найдены, то ассоциативный массив со значениями, иначе false.
// Получить запись из таблицы iris_TaskTarget с Id = $targetid
$target = $this->_DB->getRecord($targetid, '{TaskTarget}',
array('name', 'termhours', 'termminutes'));
getRecordBy(mixed$filter_field, mixed$filter_value, mixed$table, string|array$fields) : array|false
Прочитать одну запись из БД по полю
Этот метод используется для "магических" методов getRecordBy___().
mixed | $filter_field | Название поля, по которому выполняется фильтрация |
mixed | $filter_value | Значение поля, по которому выполняется фильтрация |
mixed | $table | Название таблицы, рекомендуется с {} |
string|array | $fields | Не обязательный параметр. Список колонок строкой через запятую либо массивом, по умолчанию '*' |
Если данные найдены, то ассоциативный массив со значениями, иначе false.