Envia consulta assíncrona

# pg_send_query

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

pg_send_query — Envia consulta assíncrona

### Descrição

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

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

Exemplo #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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open