pg_query_params
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_query_params —
Envía un comando al servidor y espera el resultado, con la capacidad de
pasar parámetros por separado del texto SQL de la consulta
Descripción
pg_query_params() es como pg_query(),
pero ofrece funcionalidades adicionales: los valores de los parámetros
pueden especificarse por separado de la línea de comando propia.
pg_query_params() es soportada solo con versiones
PostgreSQL 7.4 o posteriores; el comando fallará si se utiliza
con versiones anteriores.
Si se utilizan parámetros, se refieren a $1, $2, etc. en
query. El mismo parámetro puede aparecer más de una vez
en la consulta query; se utilizará el mismo valor
en ese caso. params especifica los
valores actuales de los parámetros. Un valor null en este array
significa que el parámetro correspondiente es SQL null.
La principal ventaja de pg_query_params() sobre
pg_query() es que los valores de los parámetros pueden
separarse de la consulta query, por lo tanto,
se evitan los escapes de caracteres tediosos y propensos a errores.
A diferencia de pg_query(),
pg_query_params() permite solo un comando
SQL en la cadena dada. (Puede haber puntos y coma en
el interior pero no más de un comando.)
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.
query
-
La consulta SQL con sus parámetros. Debe contener solo una
consulta. Múltiples consultas separadas por puntos y coma no están
permitidas. Si se utilizan parámetros, se refieren a
$1, $2, etc.
Los valores proporcionados por el usuario siempre deben
pasarse como parámetros, y no interpolados en la cadena de
consulta, donde pueden potencialmente formar
inyecciones SQL
e introducir errores cuando estos datos contienen comillas.
Si por alguna razón no se pueden utilizar parámetros,
asegúrese de que los valores interpolados estén
correctamente escapados.
params
-
Un array de valores de parámetros para sustituir las variables $1, $2, etc.
en la consulta preparada original. El número de elementos presentes en
el array debe coincidir con el número de variables a reemplazar.
Los valores esperados para los campos bytea no son
soportados como parámetros. Utilice en su lugar la función
pg_escape_bytea() o utilice las funciones sobre los
objetos grandes.
Valores devueltos
Una instancia PgSql\Result en caso de éxito, o false si ocurre un error.
Ejemplos
Ejemplo #1 Ejemplo con pg_query_params()
<?php
// Conexión a una base de datos llamada "marie"
$dbconn = pg_connect("dbname=marie");
// Busca todas las tiendas llamadas Joe's Widgets. Note que no es
// necesario escapar la cadena "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM tiendas WHERE nombre = $1', array("Joe's Widgets"));
// Comparación usando pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM tiendas WHERE nombre = '{$str}'");
?>