pg_send_query
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_send_query — Envia consulta assíncrona
Descrição
pg_send_query() envia uma consulta ou consultas de forma assíncrona para a
connection
. Ao contrário de
pg_query(), ele pode enviar múltiplas consultas de uma vez ao
PostgreSQL e obter os resultados um por um usando
pg_get_result().
A execução do script não é bloqueada enquanto as consultas estão em execução. Use pg_connection_busy() para verificar se a conexão está ocupada (ou seja, a consulta está em execução). As consultas podem ser canceladas usando pg_cancel_query().
Embora o usuário possa enviar diversas consultas de uma só vez, diversas consultas não podem ser enviadas em uma conexão ocupada. Se uma consulta for enviada enquanto a conexão estiver ocupada, ela aguardará até que a última consulta termine e descarta todos os seus resultados.
Parâmetros
connection
-
Uma instância de PgSql\Connection.
query
-
A instrução ou instruções SQL a serem executadas.
Os dados dentro da consulta devem ser escapados corretamente.
Valor Retornado
Retorna true
em caso de sucesso, false
ou 0
em caso de falha. Use pg_get_result()
para determinar o resultado da consulta.
Registro de Alterações
Versão | Descrição |
---|---|
8.1.0 |
O parâmetro connection agora espera uma instância de PgSql\Connection;
anteriormente, um resource era esperado.
|
Exemplos
Example #1 Exemplo de pg_send_query()
<?php
$dbconn = pg_connect("dbname=publisher") or die("Não foi possivel conectar");
if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
}
$res1 = pg_get_result($dbconn);
echo "Primeira chamada a pg_get_result(): $res1\n";
$rows1 = pg_num_rows($res1);
echo "$res1 possui $rows1 registro(s)\n\n";
$res2 = pg_get_result($dbconn);
echo "Segunda chamada a pg_get_result(): $res2\n";
$rows2 = pg_num_rows($res2);
echo "$res2 possui $rows2 registro(s)\n";
?>
O exemplo acima produzirá:
Primeira chamada a pg_get_result(): Resource id #3 Resource id #3 possui 3 registro(s) Segunda chamada a pg_get_result(): Resource id #4 Resource id #4 possui 1 registro(s)
Veja Também
- pg_query() - Executa uma consulta
- pg_cancel_query() - Cancela uma consulta assíncrona
- pg_get_result() - Obtém o resultado da consulta assíncrona
- pg_connection_busy() - Obtém se conexão está ocupada ou não