PHP Handbuch
Zurück |  | Nach vorne

# LXXVIII. 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

Postmaster | PHP | Status
--- | --- | ---
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")
    ?>

Zurück | Zum Anfang | Nach vorne
posix_getrlimit | Nach oben | pg_Close