PostgreSQL

Manuel PHP
Précédent |  | Suivant

# LXXX. PostgreSQL

Postgres, initialement développé au département de Science informatique, à UC Berkeley, mis en place la majorité des concepts des bases relationnelles, 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'interprète: "écoute sur les sockets TCP/IP et sur les sockets Unix".

Tableau 1. Postmaster et PHP

Postmaster | PHP | Statut
--- | --- | ---
postmaster & | pg_connect("dbname=MonDbName"); | OK
postmaster -i & | pg_connect("dbname=MonDbName"); | OK
postmaster & | pg_connect("host=localhost dbname=MonDbName"); | Unable to connect to PostgreSQL server: connectDB() failed: 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'?
postmaster -i & | pg_connect("host=localhost dbname=MonDbName"); | OK

Il est possible de se connecter avec la commande suivante : $conn = pg_Connect("host=monHote port=monPort tty=monTTY options=myOptions dbname=myDB user=myUser password=myPassword");

L'ancienne syntaxe : $conn = pg_connect("host", "port", "options", "tty", "dbname") est obsolète.

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 avec un commit et end. Si la transaction échoue, elle doit être conclue par un abort et rollback.

Exemple 1. Utilisation des objets de grande taille (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")
    ?>

Précédent | Sommaire | Suivant
posix_uname | Niveau supérieur | pg_affected_rows