La base de données PostgreSQL est un produit Open Source, disponible sans frais. PostgreSQL, développé au département de Science informatique, à UC Berkeley, met 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 original de Berkeley.
Pour accéder au support PostgreSQL, vous avez besoin de PostgreSQL 6.5 ou plus récent ; PostgreSQL 7.0 ou plus récent pour activer toutes les fonctionnalités du module PostgreSQL. PostgreSQL supporte de nombreux jeux de caractères, y compris les jeux multi-octets asiatiques. La version courante et plus de détails sur PostgreSQL sont accessibles sur le site » http://www.postgresql.org/ et la » Documentation PostgreSQL.
Afin d'activer le support PostgreSQL, l'option --with-pgsql[=DIR] est nécessaire lors de la compilation de PHP. DIR est le chemin du dossier d'installation de PostgreSQL, et par défaut il vaut /usr/local/pgsql. Si le module de chargement dynamique est disponible, le module PostgreSQL peut être chargé avec la directive extension du fichier php.ini ou via la fonction dl().
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Par défaut | Modifiable | Historique |
---|---|---|---|
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM | |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM | |
pgsql.max_links | "-1" | PHP_INI_SYSTEM | |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0. |
pgsql.ignore_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
pgsql.log_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
Voici un éclaircissement sur l'utilisation des directives de configuration.
Autorise ou non les connexions persistantes Postgre.
Le nombre maximum de connexions persistantes Postgre par processus.
Le nombre maximum de connexions Postgre par processus, y compris les connexions persistantes.
Détecte les connexions persistantes (ouvertes avec pg_pconnect()) rompues.
Active ou non l'affichage des notices PostgreSQL.
Active ou non l'enregistrement en fichier log des messages notices PostgreSQL. La directive PHP pgsql.ignore_notice doit être désactivée pour pouvoir enregistrer les messages de notices en fichier log.
Il y a deux types de ressource utilisé dans le module PostgreSQL. La première est l'identifiant pour la connexion à la base de données et le second est une ressource qui contient le résultat d'une requête.
Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
Note: Les fonctions ne sont pas toutes supportées par toutes les versions. Cela dépend de votre version de libpq (La bibliothèque cliente de PostgreSQL C) et comment libpq est compilé. Si les extensions PHP PostreSQL sont manquantes, alors c'est parce que votre version de libpq ne les supporte pas.
Note: La plupart des fonctions PostgreSQL acceptent le paramètre connection comme premier paramètre optionnel. S'il n'est pas fourni, la dernière connexion ouverte est utilisée. Si elle n'existe pas, les fonctions retournent FALSE.
Note: PostgreSQL transforme automatiquement tous les identifiants (par exemple, les noms de tables/colonnes) en minuscule à la création d'objet et lors de la requête. Pour forcer l'utilisation des caractères majuscules ou minuscules et majuscules des identifiants, vous devez échapper l'identifiant en utilisant des guillemets ("").
Note: PostgreSQL n'a pas de commande spéciale pour récupérer les schémas des bases de données (par exemple, toutes les tables dans la base de données). À la place, il y a un schéma standard nommé information_schema dans PostgreSQL 7.4 et supérieure contenant les vues du système avec toutes les informations nécessaires, dans un format de requête facile. Voyez la » Documentation PostgreSQL pour tous les détails.
Ce simple exemple montre comment se connecter, exécuter une requête et afficher les lignes résultantes et se déconnecter d'une base de données PostgreSQL.
Example#1 Exemple général de l'extension PostgreSQL
<?php
// Connexion, sélection de la base de données
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
or die('Connexion impossible : ' . pg_last_error());
// Exécution de la requête SQL
$query = 'SELECT * FROM auteurs';
$result = pg_query($query) or die('Échec requête : ' . pg_last_error());
// Affichage des résultats en HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
// Libère le resultset
pg_free_result($result);
// Ferme la connexion
pg_close($dbconn);
?>