Класс PostgreSQL
Представляет из себя дочерний класс PDO.
Получить уже готовый экземпляр класса с выполненным подключением к БД можно с помощью метода App::sql(). Кроме этого, можно воспользоваться методом App::sqlCallback() результат которого можно передать в виде callback функции. Это может быть полезно, если есть вероятность, что соединение с базой данных не понадобится. Соединение с БД будет инициализировано только в случае вызова callback функции.
PostgreSQL::insert
public PostgreSQL::insert(
string $table,
array $values,
string $index = 'id'
): mixed
Позволяет применить SQL запрос INSERT INTO ... для произвольного числа полей, значения которых находятся в ассоциативном массиве.
Возвращает значение индексного поля для вставленной строки.
Список параметров:
table- имя таблицы для вставки. ВНИМАНИЕ! Опасность SQL-инъекции. Имя таблицы не должно формироваться на основе данных пользователя, либо необходимо фильтровать полученные от пользователя данные.values- ассоциативный массив, содержащий в ключах наименование полей таблицы, а в значениях - значения полей для вставки.index- поле, содержащее уникальный индекс.
PostgreSQL::update
public PostgreSQL::update(
string $table,
array $values,
string $index = 'id',
string $old_index = null
): bool
Позволяет выполнить SQL запрос UPDATE ... SET ... для произвольного числа полей, значения которых находятся в ассоциативном массиве.
Возвращает true в случае успешного выполнения и false в случае возникновения ошибки.
Список параметров:
table- имя таблицы для обновления. ВНИМАНИЕ! Опасность SQL-инъекции. Имя таблицы не должно формироваться на основе данных пользователя, либо необходимо фильтровать полученные от пользователя данные.values- ассоциативный массив, содержащий в ключах наименование полей таблицы, а в значениях - значения полей для вставки.index- поле, содержащее уникальный индекс. Значение этого поля будет использовано в выраженииWHEREдля поиска нужной строки.old_index- поле, содержащее старое значение первичного ключа для случаев, если приUPDATEзначение этого ключа изменяется. Используется в выраженииWHEREвместо значенияindex, если указано.
PostgreSQL::fetchEntity
PostgreSQL::fetchEntity(
$class_name,
$where
): object|false
Позволяет получить объект заданного класса class_name из строки базы данных. Используемый класс должен поддерживать интерфейс SQL\EntityInterface. В качестве where может быть использована строка или ассоциативный массив. При использовании строки, поиск строки будет производиться по первичному индексу. При использовании ассоциативного массива - по произвольным полям.
Возвращает новый объект указанного класса из соответствующей таблицы БД или false в случае возникновения ошибки.
PostgreSQL::insertEntity
PostgreSQL::insertEntity($object): mixed
Позволяет добавить объект с интерфейсом SQL\EntityInterface в базу данных.
Возвращает значение ключевого поля вставленного объекта.
PostgreSQL::updateEntity
PostgreSQL::updateEntity(
object $object,
string $id = null
): bool
Позволяет обновить данные об объекте с интерфейсом SQL\EntityInterface в базе данных. Значение id не является обязательным. Если у объекта меняется значение первичного индекса, то необходимо старое значение добавить в виде дополнительного свойства и указать имя этого свойства в id.
Возвращает true в случае успешного выполнения и false в случае возникновения ошибки.
PostgreSQL::fetchKeyPair
PostgreSQL::fetchKeyPair(string $class_name): array
Позволяет получить из таблицы БД с именем, которая указана в классе с интерфейсом SQL\EntityInterface все строки в виде массива пар «индекс»=>«наименование». Кроме этого класс должен реализовывать интерфейс SQL\KeyPairInterface.
Возвращает ассоциативный массив из всех записей таблицы БД.
PostgreSQL::queryEntity
PostgreSQL::queryEntity(
string $class_name,
string $order
)
Позволяет получить объекты класса class_name из БД.
Возвращает объект типа PDOStatement.
Список параметров:
class_name- имя класса с интерфейсомSQL\EntityInterface;order- поле, задающее порядок следования записей.