energine
[ class tree: energine ] [ index: energine ] [ all elements ]

Class: QAL

Source Location: /framework/QAL.class.php

Class Overview

Object
   |
   --DBA
      |
      --QAL

Query Abstraction Layer.


Author(s):

  • 1m.dm

Constants

Methods


Inherited Constants

Inherited Variables

Inherited Methods

Class: DBA

DBA::__construct()
Конструктор класса.
DBA::beginTransaction()
Стартует транзакцию.
DBA::commit()
Выполняет (commit) транзакцию.
DBA::constructQuery()
Формирует строку запроса к БД.
DBA::convertType()
Конвертирует тип данных из описания БД (MySQL) в наш, системный тип.
DBA::getColumnsInfo()
Возвращает информацию о колонках таблицы $tableName в виде массива:
DBA::getForeignKeyInfo()
Возвращает информацию о внешнем ключе поля $fieldName таблицы $tableName
DBA::getLastError()
Возвращает последнюю ошибку
DBA::getLastRequest()
Возвращает последний запрос к БД.
DBA::getLastResult()
Возвращает результат последнего запроса к БД.
DBA::getTranslationTablename()
Возвращает для таблицы $tableName имя таблицы с переводами, если такая существует. В противном случае возвращает false.
DBA::modifyRequest()
Выполняет модифицирующую (INSERT, UPDATE, DELETE) операцию в БД.
DBA::quote()
Ставит кавычки вокруг входной строки (если необходимо) и экранирует специальные символы внутри входной строки.
DBA::rollback()
Откатывает транзакцию.
DBA::selectRequest()
Выполняет SELECT-запрос к БД.

Class: Object

Object::__construct()
Пустой конструктор
Object::getConfigValue()
Нестатический метод-обёртка над Object::_getConfigValue - для удобства использования внутри производных классов.
Object::getTimer()
Возвращает значение счетчика времени выполнения.
Object::resetTimer()
Сбрасывает счетчик времени, возвращает предыдущее значение счетчика
Object::startTimer()
Запускает счетчик времени выполнения.
Object::stopTimer()
Останавливает счетчик времени выполнения.
Object::_getConfigValue()
Возвращает значение указанного параметра конфигурации.

Class Details

[line 23]
Query Abstraction Layer.



Tags:

author:   1m.dm
final:  


[ Top ]


Class Methods


constructor __construct [line 58]

void __construct( string $dsn, string $username, string $password, $driverOptions, [ $charset = 'utf8'])

Конструктор класса.



Tags:

access:   public


Overrides DBA::__construct() (Конструктор класса.)

Parameters:

string   $dsn  
string   $username  
string   $password  
object   $driverOptions  
   $charset  

[ Top ]

method buildLimitStatement [line 359]

string buildLimitStatement( $clause, mixed $limit)

Строит предложение LIMIT для SQL-запроса.



Tags:

see:   QAL::selectRequest()
access:   public


Parameters:

mixed   $limit  
   $clause  

[ Top ]

method buildOrderCondition [line 333]

string buildOrderCondition( $clause, mixed $order)

Строит предложение ORDER BY для SQL-запроса.



Tags:

see:   QAL::selectRequest()
access:   public


Parameters:

mixed   $order  
   $clause  

[ Top ]

method buildWhereCondition [line 237]

string buildWhereCondition( mixed $condition)

Строит WHERE-условие для SQL-запроса.



Tags:

see:   QAL::selectRequest()
access:   public


Parameters:

mixed   $condition  

[ Top ]

method getForeignKeyData [line 286]

array getForeignKeyData( string $fkTableName, string $fkKeyName, int $currentLangID, [mixed $filter = null])

ВОзвращает данные из таблицы связанной по внешнему ключу



Tags:

todo:   Подключить фильтрацию
todo:   Исключать поля типа текст из результатов выборки для таблицы с переводами
access:   public


Parameters:

string   $fkTableName   Имя таблицы
string   $fkKeyName   имя ключа
int   $currentLangID   идентификатор текущего языка
mixed   $filter   ограничение на выборку

[ Top ]

method modify [line 163]

array modify( int $mode, string $tableName, [ $data = null], [mixed $condition = null])

Выполняет простую модифицирующую (INSERT, UPDATE, DELETE) операцию в БД.

Режим операции задаётся одной из трёх констант:

  1. QAL::INSERT - вставка;
  2. QAL::UPDATE - обновление;
  3. QAL::DELETE - удаление.
Данные для операций типа QAL::INSERT и QAL::UPDATE задаются массивом вида array(имя_поля => значение).

Условие операции задаётся массивом вида array(имя_поля => значение), или строкой WHERE-условия типа 'field1 = 4 AND field2 = 8'.

В режиме QAL::INSERT метод возвращает последний сгенерированный ID для поля типа AUTO_INCREMENT, или true если такого поля в таблице нет.

В режимах QAL::UPDATE и QAL::DELETE при успешном выполнении запроса всегда возвращается true.

При ошибке выполнения любого типа операций возвращается false.




Tags:

see:   DBA::modifyRequest()
access:   public


Parameters:

int   $mode   режим операции
string   $tableName   имя таблицы
array   $data   данные для операции
mixed   $condition   условие операции

[ Top ]

method select [line 90]

array select( string $tableName, [mixed $fields = true], [mixed $condition = null], [mixed $order = null], [mixed $limit = null])

Выполняет простой SELECT-запрос к БД и возвращает результат выборки.

Имена полей $fields задаётся одним из трёх способов:

  1. массив имён полей;
  2. имя одного поля;
  3. true, для выборки всех полей таблицы.
Условие выборки $condition задаётся массивом вида array(имя_поля => значение), или строкой WHERE-условия типа 'field1 = 4 AND field2 = 8'.

Порядок сортировки результа задаётся массивом вида array(имя_поля => порядок_сортировки), или строкой предложения ORDER BY типа 'field1 DESC, field2 ASC'.

Лимит выборки задаётся массивом вида array(смещение, кол-во_строк), или строкой предложения LIMIT типа '32'.

Возвращает массив результата выборки или true, если результат пустой.




Tags:

see:   DBA::selectRequest()
access:   public


Parameters:

string   $tableName   имя таблицы
mixed   $fields   массив имен полей ИЛИ имя одного поля ИЛИ true для выборки всех полей таблицы
mixed   $condition   условие выборки
mixed   $order   порядок сортировки результата
mixed   $limit   лимит выборки

[ Top ]


Class Constants

ASC =  'ASC'

[line 35]

Направления сортировки


[ Top ]

DELETE =  'DELETE'

[line 30]


[ Top ]

DESC =  'DESC'

[line 36]


[ Top ]

EMPTY_STRING =  null

[line 41]

Пустая строка


[ Top ]

ERR_BAD_QUERY_FORMAT =  'Bad query format.'

[line 46]

Ошибки


[ Top ]

INSERT =  'INSERT'

[line 28]

Режимы модифицирующих операций


[ Top ]

UPDATE =  'UPDATE'

[line 29]


[ Top ]


В создании документации нам помог: phpDocumentor