pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_last_oidLiefert den Objektbezeichner (OID) des zuletzt eingefügten Datensatzes

Beschreibung

pg_last_oid(PgSql\Result$result): string|int|false

pg_last_oid() wird benutzt, um den Object-Identifier OID des zuletzt eingefügten Datensatzes zu ermitteln.

Ab PostgreSQL 7.2 ist das Feld OID optional und ab der Version 8.1 wird es nicht mehr standardmäßig in den Tabellen enthalten sein. Falls eine Tabelle ohne OID definiert wurde, muss mit der Funktion pg_result_status() geprüft werden, ob ein Datensatz korrekt eingefügt wurde.

Um den Wert eines SERIAL-Feldes in einem gerade eingefügten Datensatz zu erhalten, ist der Aufruf der PostgreSQL-Funktion CURRVAL notwendig. Dem Aufruf muss der Name der in dieser Datenbanksitzung zuletzt benutzten Sequenz übergeben werden. Ist der Name dieser Sequenz unbekannt, muss er ab PostgreSQL 8.0 mittels der Funktion pg_get_serial_sequence ermittelt werden.

PostgreSQL enthält eine Funktion LASTVAL, die den Wert der zuletzt benutzten Sequenz der aktuellen Datenbanksitzung zurückgibt. Sie macht die Angabe von Sequenz, Tabelle und Spalte überflüssig.

Hinweis:

Diese Funktion ersetzt die Funktion pg_getlastoid().

Parameter-Liste

result

Eine PgSql\Result-Instanz, die von pg_query(), pg_query_params() oder pg_execute() (unter anderen) zurückgegeben wurde.

Rückgabewerte

Ein int oder string mit der OID des zuletzt eingefügten Datensatzes für die angegebene connection oder false, falls ein Fehler auftrat oder falls es keine OID gibt.

Changelog

VersionBeschreibung
8.1.0 Der Parameter result erwartet nun eine PgSql\Result-Instanz; vorher wurde eine Ressource erwartet.

Beispiele

Beispiel #1 pg_last_oid()-Beispiel

<?php
// Mit der Datenbank verbinden
pg_connect("dbname=mark host=localhost");

// Beispieltabelle erzeugen
pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

// Daten einfügen
$res = pg_query("INSERT INTO test VALUES (1)");

$oid = pg_last_oid($res);
?>

Siehe auch

To Top