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

Una instancia PgSql\Connection. Cuando connection no es especificado, se usa la conexión por defecto. La conexión por defecto es la última conexión hecha por pg_connect() o pg_pconnect()

Advertencia

Desde PHP 8.1.0, usar la conexión por defecto está obsoleto.

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 si ocurre un error.

Historial de cambios

Versión Descripción
8.1.0 Ahora devuelve una instancia de PgSql\Result ; anteriormente, se devolvía un resource.
8.1.0 El parámetro connection ahora espera una instancia de PgSql\Connection ; anteriormente, se esperaba un resource.

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)