Su ejemplo publicado no tiene sentido - pg_prepare()
y pg_query_params()
son funciones independientes con propósitos diferentes que normalmente no usaría en conjunto.
pg_prepare()
prepara una declaración (una consulta) para su posterior ejecución a través de pg_execute()
. Esto se hace como una optimización potencial:si sabe de antemano que necesitará ejecutar la declaración muchas veces seguidas, prepararla por adelantado puede ahorrar algo de trabajo en el servidor de la base de datos, ya que no tiene que (re)preparar la declaración para cada llamada.
pg_query_params()
(así como su versión 'más simple' pg_query()
) simplemente ejecuta la instrucción (consulta) directamente, obligando al servidor de la base de datos a (re)preparar la instrucción cada vez que se llama a la función.
En resumen, esto
$result = pg_query_params($query, $params);
le dará exactamente el mismo resultado que este
$statement = pg_prepare($query);
$result = pg_execute($statement, $params);
La única diferencia es que en el segundo caso, aún tiene la declaración preparada, lista para reutilizarla en más llamadas a pg_execute()
- por eso puedes darle un nombre, ya que de esa forma puedes tener diferentes declaraciones preparadas en la misma conexión que puedes ejecutar como quieras, muchas veces, en orden arbitrario.