(PHP 4 >= 4.2.0, PHP 5)
pg_send_query — Wysyła zapytanie asynchroniczne
$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.
identyfikator_połączenia
Identyfikator połączenia do bazy PostgreSQL.
zapytanie
Instrukcja lub instrukcje SQL do wykonania.
Dane w zapytaniu powinny posiadać znaki unikowe.
Zwraca TRUE
w przypadku powodzenia, FALSE
w
przypadku błędu.
Użyj pg_get_result(), aby ustalić wynik zapytania.
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