Hi,
ich habe ein Script, welches eine große Datenmenge aus einem SELECT * FROM verarbeiten muss. Aus Neugier wollte ich mir dahingehend mal die PostgreSQL-Cursor ansehen. So siehts im Moment aus:
<?
$result = pg_query($conn, "SELECT count(*) FROM log_entries WHERE request_time BETWEEN '$t1' AND '$t2' LIMIT 3");
$nOfRecords=pg_fetch_row($result);
$nOfRecords=3; // zu Testzwecken!
$dbQuery = "SELECT * FROM log_entries WHERE request_time BETWEEN '$t1' AND '$t2' ORDER BY request_time DESC LIMIT 3;";
$result = pg_query($conn, $dbQuery);
$r = pg_query($conn, 'BEGIN;');
$r = pg_query($conn, 'DECLARE getRecords CURSOR FOR '. $dbQuery);
#$r = pg_query($conn, 'OPEN getRecords FOR ' . $dbQuery);
for ($i=0; $i< $nOfRecords; $i++) {
$r = pg_query($conn, "FETCH getRecords;");
print_r($row);
}
$r = pg_query('CLOSE getRecords;');
$r = pg_query('COMMIT;');
?>
Allerdings funktioniert das nicht, d.h. es wird keine Fehlermeldung ausgegeben, es werden aber auch keine Daten angezeigt. Wo liegt der Hund begraben?
TIA,
Sebastian