pg_send_query

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

pg_send_query - 비동기 쿼리를 보냅니다.


설명

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

pg_send_query()는 쿼리를 connection에 비동기적으로 보냅니다. pg_query()와 달리 PostgreSQL에 한 번에 여러 쿼리를 보내고 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가 필요했습니다.

Examples

예제 #1 pg_send_query() 예제

                  
<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

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

  $res1 = pg_get_result($dbconn);
  echo "First call to pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 has $rows1 records\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second call to pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 has $rows2 records\n";
?>
                  
                

위의 예는 다음을 출력합니다.

First call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

Second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records
                

기타