7.82.5 Trucs et astuces d'utilisation
Attention |
Utiliser le module PostgreSQL avec PHP 4.0.6 n'est pas recommandé
à cause d'un bug dans le gestionnaire d'alerte. Utilisez plutôt la
version 4.1.0 ou plus récent.
|
Attention |
Le nom des fonctions PostgreSQL va changer dans la version 4.2.0 pour
prendre en compte les standards actuels de programmation. La plupart
des nouveaux noms recevront des soulignés, comme par exemple
pg_lo_open(). Certaines fonctions sont renommées différemment, comme
par exemple pg_exec() en pg_query(). Les anciens noms sont toujours
utilisés pour encore quelques versions, mais ils seront
bientôt supprimés définitivement.
Les anciennes syntaxes de
pg_connect
/
pg_pconnect
seront rendues obsolètes pour supporter les nouvelles connexions asynchrones.
Utilisez la chaîne de connexion avec
pg_connect
et
pg_pconnect
.
|
Toutes les fonctions ne sont pas supportées par toutes les
compilations. Cela dépend de votre librairie libpq
(la librairie C client de PostgreSQL), et comment libq
est compilé. Si il y a des fonctions qui manquent, libpq ne
supporte par la fonctionnalité sur laquelle reposait la fonction
n'est pas disponible.
Il est aussi important que vous utilisiez une version de libpq
qui soit plus récente que le serveur sur lequel vous vous connectez.
Si vous utilisez une version de libq plus ancienne que le serveur,
vous aurez des problèmes.
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".
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.
Les variables environnementales affecent le comportement de PostgreSQL.
Par exemple, le module PostgreSQL va rechercher PGHOST
dans les variables d'environnement, si le nom du serveur hôte est
omis dans la chaîne de connexion. Les variables d'environnement
supportées sont différentes suivant les versions. Reportez vous au
manuel du programmeur PostgreSQL (libpq - Environment Variables) pour plus
de détails.
Assurez vous que vous avez bien configuré vos variables d'environnement pour
le bon utilisateur. Utilisez
$_ENV
ou
getenv
pour vérifier quelles variables d'environnement
sont disponibles pour le processus courant.
Configuration par défaut des paramètres |
PGHOST=pgsql.example.com PGPORT=7890 PGDATABASE=web-system PGUSER=web-user PGPASSWORD=secret PGDATESTYLE=ISO PGTZ=JST PGCLIENTENCODING=EUC-JP
export PGHOST PGPORT PGDATABASE PGUSER PGPASSWORD PGDATESTYLE PGTZ PGCLIENTENCODING
|
|