pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_send_query Ejecuta una consulta PostgreSQL asíncrona

Descripción

pg_send_query(PgSql\Connection $connection, string $query): int|bool

pg_send_query() envía una consulta o varias consultas de manera asíncrona a la conexión connection. A diferencia de pg_query(), puede enviar varias consultas al mismo tiempo al servidor PostgreSQL y obtener los resultados uno por uno utilizando pg_get_result().

La ejecución del script no se bloquea durante la ejecución de las consultas. Se puede utilizar pg_connection_busy() para verificar si la conexión está ocupada (es decir, si la consulta se está ejecutando). Las consultas pueden ser canceladas con pg_cancel_query().

Aunque se puedan enviar varias consultas al mismo tiempo, no es posible enviar varias consultas en una conexión ocupada. Si se envía una consulta cuando la conexión está ocupada, esperará a que la consulta anterior termine y perderá todos sus resultados.

Parámetros

connection

El recurso de conexión de la base de datos PostgreSQL.

query

La consulta o las consultas SQL a ser ejecutadas.

Los datos contenidos en la consulta deben ser escaped correctamente.

Valores devueltos

Devuelve true en caso de éxito, false o 0 en caso de fallo. Utilice pg_get_result() para determinar el resultado de la consulta.

Historial de cambios

Versión Descripción
8.1.0 The connection parameter expects an PgSql\Connection instance now; previously, a recurso was expected.

Ejemplos

Ejemplo #1 Ejemplo con pg_send_query()

<?php
$dbconn
= pg_connect("dbname=publisher") or die("Conexión imposible");

if (!
pg_connection_busy($dbconn)) {
pg_send_query($dbconn,"select * from autores; select count(*) from autores;");
}

$res1 = pg_get_result($dbconn);
echo
"Primera llamada a pg_get_result() : $res1\n";
$rows1 = pg_num_rows($res1);
echo
"$res1 tiene $rows1 registros\n\n";

$res2 = pg_get_result($dbconn);
echo
"Segunda llamada a pg_get_result() : $res2\n";
$rows2 = pg_num_rows($res2);
echo
"$res2 tiene $rows2 registros\n";
?>

El resultado del ejemplo sería:

Primera llamada a pg_get_result() : Resource id #3
Resource id #3 tiene 3 registros

Segunda llamada a pg_get_result() : Resource id #4
Resource id #4 tiene 1 registros

Ver también