Funkcje PostgreSQL
PHP Manual

pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query Wysyła zapytanie asynchroniczne

Opis

bool pg_send_query ( resource $identyfikator_połączenia , string $zapytanie )

pg_send_query() wysyła asynchroniczne zapytanie lub zapytania do połączenia określonego przez identyfikator_połączenia. W przeciwieństwie do pg_query(), pozwala wysłać jednorazowo wiele zapytań do PostgreSQL-a, na następnie pobrać wyniki jeden po drugim używając funkcji pg_get_result().

Wykonywanie skryptu nie jest blokowane w czasie wykonywania zapytań. Możesz użyć pg_connection_busy() aby sprawdzić czy połączenie jest nie jest zajęte (np. wykonuje się inne zapytanie). Zapytania mogą zostać przerwane przez użycie funkcji pg_cancel_query().

Tak więc użytkownik może wysłać wiele zapytań jednocześnie, ale nie może ich wysyłać jeśli połączenie jest zajęte. Jeśli zapytanie będzie wysłane gdy połączenie jest zajęte, będzie oczekiwało aż wykona się poprzednie zapytanie i utracone zostaną wszystkie wyniki.

Parametry

identyfikator_połączenia

Identyfikator połączenia do bazy PostgreSQL.

zapytanie

Instrukcja lub instrukcje SQL do wykonania.

Dane w zapytaniu powinny posiadać znaki unikowe.

Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

Użyj pg_get_result(), aby ustalić wynik zapytania.

Przykłady

Przykład #1 Przykład pg_send_query()

<?php
  $polaczenie_z_baza 
pg_connect("dbname=wydawca") or die("Nie można było się połączyć");

  if (!
pg_connection_busy($polaczenie_z_baza)) {
      
pg_send_query($polaczenie_z_baza"select * from autorzy; select count(*) from autorzy;");
  }
  
  
$wynik1 pg_get_result($polaczenie_z_baza);
  echo 
"Pierwsze wywołanie pg_get_result(): $wynik1\n";
  
$wiersze1 pg_num_rows($wynik1);
  echo 
"$wynik1 ma $wiersze1 wpisów\n\n";
  
  
$wynik2 pg_get_result($polaczenie_z_baza);
  echo 
"Drugie wywołanie pg_get_result(): $wynik2\n";
  
$wiersze2 pg_num_rows($wynik2);
  echo 
"$wynik2 ma $wiersze2 wpisów\n";
?>

Powyższy przykład wyświetli:

Pierwsze wywołanie pg_get_result(): Resource id #3
Resource id #3 ma 8 wpisów

Drugie wywołanie pg_get_result(): Resource id #4
Resource id #4 ma 5 wpisów

Zobacz też:


Funkcje PostgreSQL
PHP Manual