Postgres, initialement développé au département de Science informatique, à UC Berkeley, mis en place la majorité des concepts de base relationnelle, actuellement disponibles sur le marché. PostgreSQL accepte le langage SQL92/SQL3, assure l'intégrité transactionnelle, et l'extension de type. PostgreSQL est une évolution du code originale de Berkeley : il est open source et dans le domaine public.
PostgreSQL est disponible sans frais. La version actuelle est disponible à (en anglais) : www.PostgreSQL.org.
Depuis la version 6.3 (03/02/1998) PostgreSQL utilise les sockets UNIX, et une table est dédiée à ces nouvelles capacités. La socket est située dans le dossier /tmp/.s.PGSQL.5432. Cette option peut être activée avec '-i' passé au postmaster et cela s'interprete: "écoute sur les sockets TCP/IP et sur les sockets Unix ".
Table 1. Postmaster et PHP
Postmaster |
PHP |
Status |
postmaster & |
pg_connect("", "", "", "", "dbname"); |
OK |
postmaster -i & |
pg_connect("", "", "", "", "dbname"); |
OK |
postmaster & |
pg_connect("localhost", "", "", "", "dbname"); |
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. : Impossible de se connecter au serveur PostgreSQL: connectDB() a échoué. Est ce que le postmaster fonctionne, et accepte les TCP/IP (option ñi) sur le port '5432'? dans /path/to/file.php3, ligne 20 ? |
postmaster -i & |
pg_connect("localhost", "", "", "", "dbname"); |
OK |
Il est possible de se connecter avec la commande suivante : $conn = pg_Connect("host=localhost port=5432 dbname=chris");
Pour utiliser l'interface des grands objets (large object (lo) interface) il est nécessaire de les placer dans un bloc de transaction. Un bloc de transaction commence avec begin et si la transaction se termine de avec un commit et end. Si la transaction échoue, elle doit être conclue par un abort et rollback.
Example 1. Using Large Objects <?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") pg_exec ($database, "end") ?> |