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
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()
AdvertenciaDesde 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.
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)