pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_select Выбирает записи из базы данных

Описание

pg_select(
    PgSql\Connection $connection,
    string $table_name,
    array $conditions,
    int $flags = PGSQL_DML_EXEC,
    int $mode = PGSQL_ASSOC
): array|string|false

pg_select() выбирает записи из базы данных, удовлетворяющие условиям field=>value, заданным в массиве conditions.

Если задан параметр flags, то к массиву conditions будет применена функция pg_convert() с параметрами, заданными в качестве аргумента.

Если задан параметр mode, возвращаемое значение будет в виде массива при PGSQL_NUM, ассоциативного массива при PGSQL_ASSOC (по умолчанию) или и того, и другого при PGSQL_BOTH.

По умолчанию pg_insert() передаёт необработанные значения. Значения должны быть экранированы или опция PGSQL_DML_ESCAPE должна быть указана. PGSQL_DML_ESCAPE заключает в кавычки и экранирует параметры/идентификаторы. Поэтому имена таблиц/столбцов становятся чувствительными к регистру.

Обратите внимание, что ни экранирование, ни подготовленный запрос не защитят запрос LIKE, JSON, массив, регулярные выражения и т.д.. Эти параметры должны обрабатываться в соответствии с их контекстами, т.е. следует экранировать/проверять значения.

Список параметров

connection

Экземпляр класса PgSql\Connection.

table_name

Название таблицы, из которой выбираются данные.

conditions

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут выбраны только те строки, значения полей которых совпадут со значениями массива.

flags

Одна из констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC, PGSQL_DML_STRING или их комбинация. Если flags содержит PGSQL_DML_STRING, функция вернёт строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

mode

Одна из констант PGSQL_ASSOC, PGSQL_NUM или PGSQL_BOTH. Если установлено значение PGSQL_ASSOC, возвращаемое значение будет ассоциативным массивом (array), при PGSQL_NUM возвращаемое значение будет массивом (array), а при PGSQL_BOTH возвращаемое значение будет и ассоциативным и числовым индексированным массивом (array).

Возвращаемые значения

Возвращает строку (string), если flags содержит PGSQL_DML_STRING, в противном случае в случае успешного выполнения функция возвращает массив (array) или false, если возникла ошибка.

Список изменений

Версия Описание
8.1.0 Параметр connection теперь ожидает экземпляр класса PgSql\Connection; раньше параметр ждал ресурс (resource).
7.1.0 Добавлен параметр mode.

Примеры

Пример #1 Пример использования pg_select()

<?php
$db
= pg_connect('dbname=foo');
// Это безопасно в некоторой степени, поскольку все значения экранируются.
// Однако PostgreSQL поддерживает JSON/массив. Для этих значений это не безопасно
// ни с через экранирование, ни с помощью подготовленного запроса.
$rec = pg_select($db, 'post_log', $_POST);
if (
$rec) {
echo
"Records selected\n";
var_dump($rec);
} else {
echo
"Должно быть переданы неверные данные\n";
}
?>

Смотрите также

  • pg_convert() - Преобразовывает значения ассоциативного массива в вид, который соответствует SQL-запросам