Le langage PHP dispose de nombreuses fonctions permettant de travailler sur des bases de données PostgreSQL.

Fonction
Description
true | false = pg_close($id_connexion);
ferme une connexion PostgreSQL.
$nb_instances | false = pg_affected_rows($id_resultats);
retourne le nombre d'instances (tuples) affectées. (PHP < 4.2 : pg_cmdTuples)
$id_connex = pg_connect({$nom_hote, $port_hote
[, $options [, $tty [, $nom_base]]]} | $chaine_connection);
ouvre une connexion à un serveur PostgreSQL.
$nom = pg_dbname($id_connexion);
retourne le nom de la base de données.
true | false = pg_end_copy($id_connexion);
synchronise le client avec le serveur PostgreSQL.
$message = pg_ErrorMessage($id_connexion);
retourne un message d'erreur.
$id_resultat = pg_query($id_connexion, $requete);
exécute une requête sur le serveur et retourne un identifiant de résultat. (PHP < 4.2 : pg_exec)
$tab_valeurs | false = pg_fetch_array($id_resultat, num_enregistrement
[, $type]);
retourne les valeurs d'un enregistrement dans un tableau d'un type associatif (PGSQL_ASSOC), indicé (PGSQL_NUM) ou des deux (PGSQL_BOTH).
$obj_valeurs = pg_fetch_object($id_resultat, $num_enregistrement);
retourne les valeurs d'un enregistrement dans un objet.
$tab_valeurs = pg_fetch_row($id_resultat, $num_enregistrement);
retourne les valeurs d'un enregistrement dans un tableau indicé.
true | false = pg_field_is_null($id_resultat, $num_enregistrement,
$position_champ);
vérifie si un champ possède une valeur égale à NULL. (PHP < 4.2 : pg_FieldIsNull)
$chaine = pg_field_name($id_resultat, $position_champ);
retourne le nom d'un champ dans un résultat. (PHP < 4.2 : pg_FieldName)
$position | -1 = pg_field_num($id_resultat, $nom_champ);
retourne la position d'un champ dans un résultat. (PHP < 4.2 : pg_FieldNum)
$taille | -1 = pg_field_prtlen($id_resultat, $num_enregistrement,
$position_champ);
retourne la taille imprimée du champ d'un enregistrement dans un résultat. (PHP < 4.2 : pg_FieldPrtLen)
$taille| false = pg_field_size($id_resultat, $position_champ);
retourne la taille en octets d'un champ dans un résultat. (PHP < 4.2 : pg_FieldSize)
$type | false = pg_field_type($id_resultat, $position_champ);
retourne le type d'un champ dans un résultat. Si la taille est variable, la valeur -1 sera retournée. (PHP < 4.2 : pg_FieldType)
true | false = pg_free_result($id_resultat);
libère les ressources consommées par un résultat. (PHP < 4.2 : pg_FreeResult
$identifiant = pg_last_oid($id_resultat);
retourne le dernier identifiant d'objet. (PHP < 4.2 : pg_GetLastOid)
$nom_hote = pg_host($id_connexion);
retourne le nom de l'hôte pour la connexion spécifiée.
pg_lo_close($id_lo);
ferme un objet de grande taille (LO : Large Object). (PHP < 4.2 : pg_loclose)
$id_lo = pg_lo_create($id_connexion);
crée un objet de grande taille. (PHP < 4.2 : pg_locreate)
true | false = pg_lo_export($id_lo, $id_fichier [, $id_connexion]);
exporte un objet de grande taille vers un fichier. (PHP < 4.2 : pg_loexport)
true | false = pg_loi_mport($id_fichier [, $id_connexion]);
importe un objet de grande taille à partir d'un fichier. (PHP < 4.2 : pg_loimport)
$id_lo = pg_lo_open($id_connexion, $obj_lo, {r | w | rw});
ouvre un objet de grande taille. (PHP < 4.2 : pg_loopen)
$chaine = pg_lo_read($id_lo, $longueur);
retourne un objet de grande taille dans une chaîne de caractères. (PHP < 4.2 : pg_loread)
pg_lo_read_all($id_lo);
lit entièrement un objet de grande taille. (PHP < 4.2 : pg_loreadall)
= pg_lo_unlink($id_connexion, $id_lo);
supprime un objet de grande taille (PHP < 4.2 : pg_lounlink).
$nb_octets | false = pg_lo_write($id_lo, $donnee);
écrit des données dans un objet de grande taille. (PHP < 4.2 : pg_lowrite)
$nb_champs | -1 = pg_num_fields($id_resultat);
retourne le nombre de champs dans un résultat. (PHP < 4.2 : pg_NumFields)
$nb_enregistrements | -1 = pg_num_rows($id_resultat);
retourne le nombre d'enregistrements dans un résultat. (PHP < 4.2 : pg_NumRows)
$option = pg_options($id_connexion);
retourne les options d'une connexion SQL.
$id_connexion = pg_pconnect($chaine_connexion);
ouvre une connexion persistante sur un serveur PostgreSQL.
$num_port = pg_port($id_connexion);
retourne le numéro de port pour la connexion indiquée.
true | false = pg_put_line($id_connexion, $chaine);
envoie une chaîne de caractères au serveur PostgreSQL.
$valeur = pg_fetch_result($id_resultat, $num_enregistrement, $position_champ);
retourne la valeur d'un champ dans un enregistrement d'un résultat. (PHP < 4.2 : pg_result)
true | false = pg_set_client_encoding($id_connexion, $encodage);
détermine l'encodage du client (SQL_ASCII, UNICODE, LATINX, WIN, BIG5, WIN1250).
$encodage = pg_client_encoding($id_connexion);
retourne l'encodage du client.
true | false = pg_trace($fichier [, $mode [, $id_connexion]]);
active le suivi d'une connexion PostgreSQL.
$chaine = pg_tty($id_connexion);
retourne le nom tty de la connexion.
true | false = pg_untrace($id_connexion);
arrête le suivi d'une connexion PostgreSQL.
Exemple
<?php
  function gestion_erreur($identifiant)
  {
    echo "Une erreur s'est produite : " . pg_errormessage($id_connexion);
    exit;
  }

  $id_connexion = pg_pconnect("user=utilisateur " 
                                               . "password=essapmot " 
                                               . "dbname=tbl_personnel");
  if (!$id_connexion) gestion_erreur($id_connexion);

  $date = date("d/m/Y");
  $insertion = pg_exec($id_connexion, 
                                    "INSERT INTO tbl_personnel (date, nom, prenom, email) "
                                  . "VALUES (" . $date . "'" . $nom . "', '" 
                                  . $prenom . "', '" . $email . "')");

  $selection = pg_exec($id_connexion, "SELECT * FROM tbl_personnel");

  $i = 0;
  echo "<table border=\"1\"><tr>";
  while($enregistrement = pg_fetch_object($id_connexion, $i))
  {
    $informations = get_object_vars($enregistrement);
    $entete = array_keys($informations);
    $contenu = array_values($informations);

    if($i == 0)
    {
      while($cle = array_shift($entete))
      {
        echo "<th>" . $cle . "</th>";
      }
    }

    echo "</tr><tr>";

    while($valeur = array_shift($contenu))
    {
      echo "<td>" . $valeur . "</td>";
    }
    $i++;
  }
  echo "</tr></table>";
?>