(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
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.
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().
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.
Una instancia PgSql\Result en caso de éxito, o false
en caso de error.
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.
|
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"));
?>