Отправляет асинхронный запрос

# pg_send_query

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

pg_send_query — Отправляет асинхронный запрос

### Описание

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

pg_send_query() отправляет на выполнение асинхронный запрос. В отличие от pg_query() запрос может содержать несколько SQL-выражений, разделённых точкой с запятой. Для получения результата запроса используйте функцию pg_get_result().

Выполнение запроса не прерывает работу скрипта. Для определения занятости соединения (когда запрос ещё выполняется) используйте функцию pg_connection_busy(). Выполнение запроса можно прервать функцией pg_cancel_query().

Несмотря на то, что можно отправить несколько запросов за раз, их нельзя посылать, пока соединение занято. В противном случае, посланный запрос дождётся завершения предыдущего, сотрёт его результат и запустится сам. Таким образом вы потеряете данные результата предыдущего запроса.

### Список параметров

`connection`
  Экземпляр класса PgSql\Connection.
`query`

  Одно или несколько SQL-выражений, разделённых точкой с запятой.

  Спецсимволы в строке запроса должны быть экранированы.

### Возвращаемые значения

Возвращает `true` в случае успешного выполнения, `false` или `0` в случае возникновения ошибки. Для получения результата запроса используйте функцию pg_get_result().

### Список изменений

Версия | Описание
--- | ---
8.1.0 | Параметр `connection` теперь принимает объект PgSql\Connection; раньше параметр принимал тип resource.

### Примеры

Пример #1 Пример использования pg_send_query()

    <?php
      $dbconn = pg_connect("dbname=publisher") or die("Не удалось подключиться");

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

      $res1 = pg_get_result($dbconn);
      echo "Первый вызов pg_get_result(): $res1\n";
      $rows1 = pg_num_rows($res1);
      echo "$res1 содержит $rows1 записей\n\n";

      $res2 = pg_get_result($dbconn);
      echo "Второй вызов pg_get_result(): $res2\n";
      $rows2 = pg_num_rows($res2);
      echo "$res2 содержит $rows2 записей\n";
    ?>

Результат выполнения приведённого примера:

    Первый вызов pg_get_result(): Resource id #3
    Resource id #3 содержит 3 записей

    Второй вызов pg_get_result(): Resource id #4
    Resource id #4 содержит 1 записей

### Смотрите также

- pg_query() - Выполняет запрос
- pg_cancel_query() - Остановка асинхронного запроса.
- pg_get_result() - Получает результат асинхронного запроса
- pg_connection_busy() - Проверяет, занято ли соединение в данный момент.

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