pg_prepare

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

pg_prepare Envía una solicitud al servidor para crear una sentencia preparada con los parámetros dados y espera la ejecución

Descripción

pg_prepare(PgSql\Connection $connection = ?, string $stmtname, string $query): PgSql\Result|false

pg_prepare() crea una consulta preparada para una ejecución posterior con pg_execute() o pg_send_execute(). Esta característica permite que las órdenes que serán utilizadas repetidamente sean analizadas y planificadas una sola vez, en lugar de ser ejecutadas cada vez. pg_prepare() es soportada solo con las versiones PostgreSQL 7.4 o más recientes; la orden fallará si se utiliza con versiones anteriores.

La función crea una consulta preparada llamada stmtname a partir de la cadena query, la cual debe contener una sola orden SQL. stmtname puede ser "" para crear una consulta sin nombre. En este caso, las consultas que existían y que no tenían nombres son automáticamente sobrescritas; de lo contrario, habrá un error si el nombre de la consulta ya está definido en la sesión actual. Si se utilizan parámetros, estos son referenciados como $1, $2, etc. en query.

Las consultas preparadas para ser utilizadas con pg_prepare() también pueden ser creadas ejecutando la orden SQL PREPARE. (Sin embargo, pg_prepare() es más flexible ya que no requiere que los tipos de los parámetros sean preespecificados.) Además, aunque no existe una función PHP para eliminar una consulta preparada, la orden SQL DEALLOCATE puede ser utilizada para este propósito.

Parámetros

connection

An PgSql\Connection instance. When connection is unspecified, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Advertencia

As of PHP 8.1.0, using the default connection is deprecated.

stmtname

El nombre a dar a la consulta preparada. Debe ser único para cada sesión. Si se especifica una cadena vacía "" entonces se crea una consulta sin nombre, sobrescribiendo las consultas sin nombres previamente definidas.

query

La consulta SQL con sus parámetros. Debe contener solo una sola consulta. Varios comandos separados por punto y coma no son permitidos. Si se utilizan parámetros, estos son referenciados como $1, $2, etc.

Valores devueltos

Una instancia PgSql\Result en caso de éxito, o false en caso de error.

Historial de cambios

Versión Descripción
8.1.0 Returns an PgSql\Result instance now; previously, a recurso was returned.
8.1.0 The connection parameter expects an PgSql\Connection instance now; previously, a recurso was expected.

Ejemplos

Ejemplo #1 Ejemplo con pg_prepare()

<?php
// Conexión a una base de datos llamada "marie"
$dbconn = pg_connect("dbname=marie");

// Prepara una consulta para la ejecución
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');

// Ejecuta la consulta preparada. Note que no es necesario escapar
// la cadena "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Ejecuta la misma consulta preparada, esta vez con un parámetro diferente
$result = pg_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));

?>

Ver también

  • pg_execute() - Ejecuta una consulta preparada de PostgreSQL
  • pg_send_execute() - Envía una consulta para ejecutar una consulta preparada con parámetros dados, sin esperar el(los) resultado(s)