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 — Gibt asynchrone Abfrageergebnisse zurück
Beschreibung
resource pg_get_result
([ resource $connection
] )
pg_get_result() gibt die Ergebniskennung einer asynchronen Abfrage zurück, die mit pg_send_query(), pg_send_query_params() oder pg_send_execute() an den Datenbankserver gesendet wurde.
Mit pg_send_query() und auch den anderen asynchronen Abfragefunktionen können mehrere Abfragen an den Server geschickt werden. Deren Ergebnisse können mit pg_get_result() nacheinander abgefragt werden.
Parameter-Liste
- connection
-
PostgreSQL Verbindungskennung.
Rückgabewerte
Die Ergebniskennung als resource or FALSE, falls es keine Ergebnisse gibt.
Beispiele
Beispiel #1 pg_get_result() Beispiel
<?php
$dbconn = pg_connect("dbname=publisher") or die("Verbindungsaufbau fehlgeschlagen");
if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
}
$res1 = pg_get_result($dbconn);
echo "Der erste Aufruf von pg_get_result(): $res1\n";
$rows1 = pg_num_rows($res1);
echo "$res1 hat $rows1 Zeilen\n\n";
$res2 = pg_get_result($dbconn);
echo "Der zweite Aufruf von pg_get_result(): $res2\n";
$rows2 = pg_num_rows($res2);
echo "$res2 hat $rows2 Zeilen\n";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der erste Aufruf von pg_get_result(): Resource id #3 Resource id #3 hat 3 Zeilen Der zweite Aufruf von pg_get_result(): Resource id #4 Resource id #4 hat 1 Zeilen
pg_get_result
william at 25thandClement dot com
27-Jan-2005 03:03
27-Jan-2005 03:03
