pg_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_prepare Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

Описание

pg_prepare ( resource $connection = ? , string $stmtname , string $query ) : resource|false

pg_prepare() создает заготовку SQL выражения на сервере для последующего запуска функциями pg_execute() или pg_send_execute(). Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. pg_prepare() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать c серверами ранних версий.

Функция создает заготовку SQL запроса с названием stmtname и телом query, которое должно содержать одно SQL выражение. stmtname может быть пустой строкой, тогда будет создана безымянная заготовка. Если какая-либо безымянная заготовка уже определена, она будет заменена на новую автоматически. В остальных случаях совпадение имен новой и существующей в данной сессии заготовок приведет к ошибке. Если в query будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д. при передаче запроса.

Подобные заготовки запросов также можно делать с помощью SQL-команды PREPARE (но pg_prepare() более гибкая, так как не требует строгой типизации своих параметров). Важно отметить, что в PHP нет функций для удаления подготовленных SQL-выражений, для этого используйте команду SQL DEALLOCATE.

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

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определенное ранее.

query

Параметризованный SQL-запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

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

Ресурс результата запроса или 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-запрос и передает ему параметры; не ожидает возвращаемого результата