Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.73 ">

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

PostmasterPHPStatut
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")
?>

Table des matières
pg_affected_rows -- Returns number of affected records(tuples)
pg_cancel_query --  Cancel async query
pg_client_encoding --  Lit l'encodage du client
pg_Close -- Termine une connexion PostgreSQL.
pg_connect -- Ouvre une connexion.
pg_connection_busy --  Get connection is busy or not
pg_connection_reset --  Reset connection (reconnect)
pg_connection_status --  Get connection status
pg_convert --  Convert associative array value into suitable for SQL statement.
pg_copy_from --  Insert records into a table from an array
pg_copy_to --  Copy a table to an array
pg_DBname -- Nom de la base de données.
pg_delete --  Delete records.
pg_end_copy -- Synchronise avec le serveur PostgreSQL
pg_escape_bytea --  Escape binary for bytea type
pg_escape_string --  Escape string for text/char type
pg_Fetch_Array -- Lit une ligne dans un tableau.
pg_Fetch_Object -- Lit une ligne dans un objet.
pg_fetch_result -- Returns values from a result resource
pg_Fetch_Row -- Lit une ligne dans un tableau.
pg_field_is_null -- Test if a field is NULL
pg_field_name -- Returns the name of a field
pg_field_num -- Returns the field number of the named field
pg_field_prtlen -- Returns the printed length
pg_field_size --  Returns the internal storage size of the named field
pg_field_type --  Returns the type name for the corresponding field number
pg_free_result -- Free result memory
pg_get_result --  Get asynchronous query result
pg_Host -- Retourne le nom d'hôte.
pg_insert --  Insert array into table.
pg_last_error -- Get the last error message string of a connection
pg_last_notice --  Returns the last notice message from PostgreSQL server
pg_last_oid -- Returns the last object's oid
pg_lo_close -- Close a large object
pg_lo_create -- Create a large object
pg_lo_export -- Export a large object to file
pg_lo_import -- Import a large object from file
pg_lo_open -- Open a large object
pg_lo_read_all --  Read a entire large object and send straight to browser
pg_lo_read -- Read a large object
pg_lo_seek --  Seeks position of large object
pg_lo_tell --  Returns current position of large object
pg_lo_unlink -- Delete a large object
pg_lo_write -- Write a large object
pg_metadata --  Get metadata for table.
pg_num_fields -- Returns the number of fields
pg_num_rows -- Returns the number of rows
pg_Options -- Retourne les options.
pg_pConnect --  Etablit une connexion persistante.
pg_Port -- Retourne le numéro de port.
pg_put_line -- Envoie une chaîne au serveur PostgreSQL
pg_query -- Execute a query
pg_result_error --  Get error message associated with result
pg_result_status --  Get status of query result
pg_select --  Select records.
pg_send_query --  Send asynchronous query
pg_set_client_encoding --  Choisit l'encodage du client
pg_trace -- Active le suivi d'une connexion PostgreSQL
pg_tty -- Retourne le nom de tty.
pg_untrace -- Termine le suivi d'une connexion PostgreSQL
pg_update --  Update table.