pg_prepare
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_prepare —
Отправляет на сервер запрос на подготовку SQL-запроса с параметрами-заполнителями
и ждёт, пока завершится подготовка запроса
Описание
Функция создает подготовленный запрос с названием stmtname
из строки query
, которая содержит одну команду.
Значение параметра stmtname
указывают как пустую строку ""
,
чтобы создать безымянный запрос, который автоматически заменяет предыдущий безымянный запрос;
в остальных случаях попытка назвать запрос именем, которое уже определили в текущей сессии,
вызовет ошибку. Параметры, которые передали при выполнении запроса,
указывают на обозначения $1
, $2
и т. д. в запросе query
.
Подготовленные для функции pg_prepare() запросы создают также SQL-командой
PREPARE
, но функция pg_prepare() гибче,
поскольку не заставляет указывать типы параметров.
Хотя в PHP нет функции для удаления подготовленного запроса,
это сделает SQL-команда DEALLOCATE
.
Список параметров
connection
-
Экземпляр
класса PgSql\Connection.
Функция выберет соединение по умолчанию, если параметр connection
не указали.
Соединение по умолчанию — последнее соединение, которое установила функция pg_connect()
или pg_pconnect().
ВниманиеНачиная с PHP 8.1.0 выбор функцией соединения по умолчанию устарел.
stmtname
-
Уникальное в пределах сессии имя, которым функция назовёт подготовленный запрос.
Функция создаст безымянный запрос, который перезапишет предыдущий безымянный запрос
текущей сессии, если задали пустую строку ""
.
query
-
Один параметризованный SQL-запрос; несколько запросов через точку с запятой не поддерживаются.
Параметры, которые передали, относятся к обозначениям запроса $1
, $2
и т. д.
Возвращаемые значения
Функция возвращает экземпляр PgSql\Result в случае успешного выполнения или false
, если возникла ошибка.
Примеры
Пример #1 Пример подготовки запроса функцией pg_prepare()
<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");
// Подготовка запроса
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
// Запуск запроса на выполнение. Обратите внимание: спецсимволы в строке "Joe's Widgets"
// не заэкранированы
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));
// Запуск на выполнение того же запроса, но с другим параметром
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
?>
Смотрите также
- pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждёт результат
- pg_send_execute() - Запускает предварительно подготовленный SQL-запрос и
передаёт ему параметры; не ожидает возвращаемого результата