LXVII. PostgreSQL Funktionen

Postgres, ursprünglich entwickelt im UC Berkeley Computer Science Department, hat Pionierarbeit bei objektrelationalen Datenbankkonzepten geleistet, die jetzt Einzug in kommerzielle Datenbanken halten. Postgres bietet SQL92/SQL3 Sprachunterstützung, Transaktionen und erweiterbare Typenklassen. PostgreSQL ist eine Public Domain und Open Source Weiterentwicklung des ursprünglichen Berkeley-Codes.

PostgreSQL ist kostenlos. Die aktuelle Version ist erhältlich bei www.PostgreSQL.org.

Seit Version 6.3 (03/02/1998) benutzt PostgreSQL Unix Domain Sockets, siehe folgende Tabelle. Der Socket ist in /tmp/.s.PGSQL.5432 zu finden. Der Schalter -i, der dem postmaster mitgegeben werden kann, weist diesen an, sowohl über TCP/IP als auch über UNIX Domain Sockets eine Verbindung bereitzustellen.

Tabelle 1. Postmaster und PHP

PostmasterPHPStatus
postmaster &pg_connect("dbname=MyDbName");OK
postmaster -i &pg_connect("dbname=MyDbName");OK
postmaster &pg_connect("host=localhost dbname=MyDbName"); Unable to connect to PostgreSQL server: connectDB() failed: Is the postmaster running and accepting TCP/IP (with -i) connection at 'localhost' on port '5432'? in /path/to/file.php3 on line 20.
postmaster -i &pg_connect("host=localhost dbname=MyDbName");OK

Eine Verbindung läßt sich auch mit folgendem Befehl herstellen: $conn = pg_Connect("host=myHost port=myPort tty=myTTY options=myOptions user=myUser password=myPassword dbname=myDB");

Die bisherige Syntax: $conn = pg_connect ("host", "port", "options", "tty", "dbname") ist veraltet und sollte nicht weiter verwendet werden.

Um die Large Object-Schnittstelle zu benutzen, ist es nötig, diese in einem Transaktionsblock einzuschließen. Ein Transaktionsblock beginnt mit einem begin und endet, wenn die Transaktion gültig war, mit commit oder end. Wenn die Transaktion fehlschlägt, sollte sie mit abort oder rollback geschlossen werden.

Beispiel 1. Grosse Objekte benutzen


<?php
    $database = pg_Connect ("", "", "", "", "jacarta");
    pg_exec ($database, "begin");
    $oid = pg_locreate ($database);
    echo ("$oid\n");
    $handle = pg_loopen ($database, $oid, "w");
    echo ("$handle\n");
    pg_lowrite ($handle, "gaga");
    pg_loclose ($handle);
    pg_exec ($database, "commit")
?>
     

Inhaltsverzeichnis
pg_Close — Schließt eine PostgreSQL-Verbindung
pg_cmdTuples — Gibt die Anzahl betroffener Tupel zurück
pg_Connect — Öffnet eine Verbindung
pg_DBname — Name der Datenbank
pg_end_copy — Syncronisation mit dem PostgreSQL backend
pg_ErrorMessage — Fehlermeldung
pg_Exec — Führt eine Abfrage aus
pg_Fetch_Array — Holt eine Datenbankreihe als Array
pg_Fetch_Object — Holt einen Datensatz als Objekt
pg_Fetch_Row — Holt einen Datensatz als numerisches Array
pg_FieldIsNull — Prüft, ob ein Feld NULL ist
pg_FieldName — Gibt den Namen eines Feldes zurück
pg_FieldNum — Liefert die Feldnummer eines Feldes
pg_FieldPrtLen — Liefert die angegebene Feldlänge
pg_FieldSize — Liefert die interne Speichergröße des benannten Felds
pg_FieldType — Liefert den Feldtyp der entsprechenden Feldnummer
pg_FreeResult — Gibt durch Ergebnisse belegten Speicher frei
pg_GetLastOid — Gibt die letzte Objektkennung aus
pg_Host — Gibt den Hostnamen zurück
pg_loclose — Schließt ein großes Objekt
pg_locreate — Erstellt ein großes Objekt
pg_loexport — export a large object to file
pg_loimport — import a large object from file
pg_loopen — Öffnet ein grosses Objekt
pg_loread — Liest ein grosses Objekt
pg_loreadall — Liest ein grosses Objekt vollständig
pg_lounlink — Ein grosses Objekt löschen
pg_lowrite — Schreibt in ein grosses Objekt
pg_NumFields — Gibt die Anzahl der Felder aus
pg_NumRows — Gibt die Anzahl der Zeilen aus
pg_Options — Liefert Verbindungsoptionen
pg_pConnect — Stellt eine persistente Datenbankverbindung her
pg_Port — Gibt die Portnummer aus
pg_put_line — Sendet eine NULL-terminierte Zeichenkette zum PostgreSQL backend
pg_Result — Liefert Werte eines bezeichneten Ergebnisses
pg_set_client_encoding — Set the client encoding
pg_client_encoding — Get the client encoding
pg_trace — Trace a connection to PostgreSQL server
pg_tty — Gibt den tty-Namen aus
pg_untrace — Stop tracing a connection to PostgreSQL server