# pg_prepare

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

pg_prepare — Envía una solicitud para crear una sentencia preparada con los parámetros dados, y espera que se complete

### Descripción

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

pg_prepare() crea una sentencia preparada para la ejecución posterior con pg_execute() o pg_send_execute(). Esta característica permite que los comandos que se utilizarán repetidamente se analicen y se planifiquen sólo una vez, en lugar de cada vez que se ejecuten. pg_prepare() Está soportado sólo para conexiones de PostgreSQL 7.4 o superior; fallará al usar versiones anteriores.

La función crea una sentencia preparada denominada `stmtname` desde la cadena `query`, que debe contener un único comando SQL. `stmtname` puede ser "" para crear una sentencia sin nombre, en cuyo caso se sustituye automáticamente cualquier sentencia sin nombre preexistente; de lo contrario, es un error si el nombre de la sentencia ya está definido en la sesión actual. Si se utilizan parámetros, se refieren al `query` como $1, $2, etc.

Las sentencias preparadas para su uso con pg_prepare() también se pueden crear ejecutando sentencias SQL `PREPARE`. (Pero pg_prepare() es más flexible, ya que no requiere preespecificar los tipos de parámetros.) Además, aunque no existe ninguna función PHP para borrar una sentencia preparada, la sentencia SQL `DEALLOCATE` puede utilizarse para ese propósito.

### Parámetros

`connection`

  Recurso de conexión a una base de datos de PostgreSQL. Cuando `connection` no está presente, se utilizará la conexión predeterminada. Esta es la última conexión realizada por pg_connect() o pg_pconnect().

`stmtname`

  El nombre para dar la declaración preparada. Debe ser una conexión única. Si se especifica como "", entonces se crea una declaración sin nombre, sobrescribiendo cualquier declaración sin nombre previamente definida.

`query`

  La declaración SQL parametrizada. Debe contener una sola declaración. (No se permiten las declaraciones múltiples separadas por punto y coma). Si se utiliza algún parámetro, se denominan $1, $2, etc.

### Valores devueltos

Un recurso de consulta en caso de éxito o `false` en caso de error.

### Ejemplos

Ejemplo #1 Usando pg_prepare()

`<?php
// Conéctese a una base de datos llamada "mary"
$dbconn = pg_connect("dbname=mary");
// Preparar una consulta para la ejecución
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
// Ejecute la consulta preparada. Tenga en cuenta que no es necesario escapar
// el string "Joe's Widgets" de cualquier manera
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));
// Ejecutar la misma consulta preparada, esta vez con un parámetro diferente
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
?>`

### Ver también

- pg_execute() - Envía una solicitud para ejecutar una setencia preparada con parámetros dados, y espera el resultado
- pg_send_execute() - Sends a request to execute a prepared statement with given parameters, without waiting for the result(s)