(PHP 4 >= 4.2.0, PHP 5)
pg_get_result — Gibt asynchrone Abfrageergebnisse zurück
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.
PostgreSQL Verbindungskennung.
Die Ergebniskennung als resource or FALSE, falls es keine Ergebnisse gibt.
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
william at 25thandClement dot com said: "There is no way to poll/wait for a notification to come in. .."
Yes, there is. If there is a query in progress, pg_get_result() will block and return the result of that query when it's complete.
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.