There is no way to poll/wait for a notification to come in. You either have to enter a busy loop or sleep. Both options are horrible. It would be nice for PHP to provide access to PQsocket so one could select() on the socket connection. This is how it's done from C or Perl.
pg_get_result
(PHP 4 >= 4.2.0, PHP 5)
pg_get_result — Pobiera wynik zapytania asynchroniczego
Opis
resource pg_get_result
([ resource $polaczenie
] )
pg_get_result() zwraca wynik zapytania asynchronicznego uruchomionego przez pg_send_query(), pg_send_query_params() lub pg_send_execute().
pg_send_query() oraz inne funkcje zapytań asynchronicznych może wysyłać wiele zapytań do serwera PostgreSQL, natomiast pg_get_result() jest używana do pobierania wyników każdego zapytania po kolei.
Parametry
- polaczenie
-
Identyfikator połączenia z bazą PostgreSQL.
Zwracane wartości
Identyfikator wyniku (ang. resource), lub FALSE gdy brak więcej dostępnych wyników.
Przykłady
Example #1 pg_get_result() - przykład
<?php
$polaczenie = pg_connect("dbname=wydawca") or die("Nie można się połączyć");
if (!pg_connection_busy($polaczenie)) {
pg_send_query($polaczenie, "select * from autorzy; select count(*) from autorzy;");
}
$wyn1 = pg_get_result($polaczenie);
echo "Pierwsze wywołanie pg_get_result(): $wyn1\n";
$wiersze1 = pg_num_rows($wyn1);
echo "$wyn1 ma $wiersze1 rekordy(ów)\n\n";
$wyn2 = pg_get_result($polaczenie);
echo "Drugie wywołanie pg_get_result(): $wyn2\n";
$wiersze2 = pg_num_rows($wyn2);
echo "$wyn2 ma $wiersze2 rekordy(ów)\n";
?>
Powyższy przykład wyświetli:
Pierwsze wywołanie pg_get_result(): Resource id #3 Resource id #3 ma 3 rekordy(ów) Drugie wywołanie pg_get_result(): Resource id #4 Resource id #4 ma 1 rekordy(ów)
pg_get_result
william at 25thandClement dot com
28-Jan-2005 12:03
28-Jan-2005 12:03
