banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Wed 18 March 2009 11:06

Anna
Juste Inscrit !
Lieu: Saint-ouen
Date d'inscription: 27 Apr 2008
Messages: 7

connexion php à postgreSQL : undefined function pg_connect()

Bonjour,

Dans le cadre d'une application de cartographie sur un internet, je cherche à accéder à une base de donnée Postgre/postgis depuis un navigateur web avec du php5.

Je fais appel à la fonction pg_connect(host=localhost dbname=Duclos user=postgres password=postgres);

Or quand je lance ma page j'obtiens le message d'erreur suivant : Fatal error: Call to undefined function pg_connect()

Après recherches sur internet :
- j'ai modifié le fichier php.ini afin que les extensions pgsql ne soient plus commentées.
- J'ai bien vérifié que j'avais les fichiers .dll dans mon dossier /ext
- Je les ai remplacés par des versions plus anciennes puisque visiblement après php5.2.5 ils sont vérolés (php5.2.5).
- Le chemin vers le dossier /ext dans le fichier php.ini semble correct.
- J'ai rajouté à mon code la ligne :
if (extension_loaded('pgsql'))
    echo 'loaded';
else
    echo 'unloaded';

Cela me renvoie toujours unloaded.
- Enfin dans mon fichier logs il n'y a qu'un seul message d'erreur : Fatal error: Call to undefined function pg_connect()

- bien sur entre chaque opération j'ai redémarré le serveur (wampserver) voir parfois redémarré l'ordinateur lui-même.

Voilà, je suis sous windows vista. Php 5.2.5. Wampserver2. navigateur firefox (javascript activé). Je ne sais pas quelles informations donner de plus.

Si quelqu'un a une suggestion ou une idée je suis preneuse...

Merci d'avance!

Hors ligne

 

#2 Wed 18 March 2009 12:57

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 946
Site web

Re: connexion php à postgreSQL : undefined function pg_connect()

Salut,

As-tu fait un phpinfo()?
Pour cela, il faut copier

Code:

<?php
phpinfo();
?>

dans un fichier info.php à la racine (par exemple sous wampserver, www) et allez via votre navigateur sur http://localhost/info.php
Es-ce que Postgresql ou pgsql est cité après cette manipulation?

Ta dll chargée c'est bien php_pgsql?

Cordialement

ThomasG

Hors ligne

 

#3 Wed 18 March 2009 13:23

Anna
Juste Inscrit !
Lieu: Saint-ouen
Date d'inscription: 27 Apr 2008
Messages: 7

Re: connexion php à postgreSQL : undefined function pg_connect()

Je viens de faire un phpinfo(). Il n'y a pas de sous-partie postgreSQL comme il y en a une pour MySQL. Devrait il en avoir une ?
J'ai chargé les dll php_pgsql et php_pdo_pgsql.dll

Est-ce que je copie une partie du phpinfo() ? Ca peut aider?

Merci,

Anna

EDIT : Postgres est cité des les variables d'environnement et les variables php.

Dernière modification par Anna (Wed 18 March 2009 13:25)

Hors ligne

 

#4 Wed 18 March 2009 13:29

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: connexion php à postgreSQL : undefined function pg_connect()

Bonjour Anna,

Comme l'a sous-entendu ThomasG, si tu n'as pas l'extension pgsql (comme celle de mysql) chargée dans php, tu ne pourras pas aller plus loin. Il faut donc l'activer soit dans le fichier php.ini soit créer dans conf.d/ le fichier pgsql.ini, et y insérer :

Code:

# configuration for php PostgreSQL module
extension=pgsql.dll

Toujours vérifier que ton phpinfo affiche l'extension pgsql avant d'aller plus loin.

Tu trouveras de la doc pour activer une extension sous Windows sur Internet.

Y.
[img]http://georezo.net/forum/attachment.php?item=2563&download=1[/img]


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Wed 18 March 2009 14:01

Anna
Juste Inscrit !
Lieu: Saint-ouen
Date d'inscription: 27 Apr 2008
Messages: 7

Re: connexion php à postgreSQL : undefined function pg_connect()

Yves a écrit:

Il faut donc l'activer soit dans le fichier php.ini


Ok, ça j'ai bien vérifié c'est bon.

Yves a écrit:

soit créer dans conf.d/ le fichier pgsql.ini


Juste une question conf.d c'est un dossier qui est censé exister où ? Parce que dans mon ordi je ne le trouve pas. Je le crée dans bin/php/php5.2.5/ ?

Il ne semble pas exister d'extension pgsql.dll mais seulement php_pgsql.dll et php_pdo_pgsql.dll et plpgsql.dll, je marque quand même extension=pgsql.dll ?

Désolée pour toutes ces questions, je me nage un peu là...

Merci pour ces conseils,

Anna

Hors ligne

 

#6 Wed 18 March 2009 14:04

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: connexion php à postgreSQL : undefined function pg_connect()

Anna a écrit:
Yves a écrit:

Il faut donc l'activer soit dans le fichier php.ini


Ok, ça j'ai bien vérifié c'est bon.

Yves a écrit:

soit créer dans conf.d/ le fichier pgsql.ini


Juste une question conf.d c'est un dossier qui est censé exister où ? Parce que dans mon ordi je ne le trouve pas. Je le crée dans bin/php/php5.2.5/ ?

Il ne semble pas exister d'extension pgsql.dll mais seulement php_pgsql.dll et php_pdo_pgsql.dll et plpgsql.dll, je marque quand même extension=pgsql.dll ?

Désolée pour toutes ces questions, je me nage un peu là...

Merci pour ces conseils,

Anna


Si c'est bon dans le php.ini, pas besoin de rajouter le fichier pgsql.ini, conf.d se trouve dans /etc/php/apache2/conf.d/ (sous linux).

Il faut bien sur adapter le nom de la dll wink

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Wed 18 March 2009 16:29

jmz
Participant actif
Lieu: Anthon
Date d'inscription: 5 Sep 2005
Messages: 142

Re: connexion php à postgreSQL : undefined function pg_connect()

Bonjour,

Le message d'erreur semble explicite, c'est bien la fonction "pg_connect" qui n'est pas reconnue, et c'est bien l'extension qui n'est pas chargée..

- Vérifie que ton extension est bien déclarée :Php info qui liste des extensions, versions, ect ... (fais juste une page php dans lequel  tu écris phpinfo(); entre tes balises php).

Vérifie également : les noms des fichiers Dll / version PostGIs et version de Php compatibles.

Cordialement
Jmz

Hors ligne

 

#8 Thu 09 April 2009 11:56

Fritsch
Participant occasionnel
Lieu: Paris
Date d'inscription: 8 Nov 2006
Messages: 32

Re: connexion php à postgreSQL : undefined function pg_connect()

Cela fait un an que la connexion PHP-PostgreSQL est chancelante dans les distributions windows.

Il y a 6 mois, il suffisait de remplacer les dll php_pgsql.dll par leurs équivalents dans une distributions antérieures.

Aujourd'hui, il semblerait que le problème soit plus sérieux. Je n'ai pas encore trouvé la solution.

Emmanuel.

Hors ligne

 

#9 Fri 10 April 2009 09:49

Anna
Juste Inscrit !
Lieu: Saint-ouen
Date d'inscription: 27 Apr 2008
Messages: 7

Re: connexion php à postgreSQL : undefined function pg_connect()

Bonjour,

Merci pour tous ces conseils et désolée de ne pas avoir répondu plus tôt. Bloquée par ce problème et fasse à des contraintes de temps, j'ai fini par opté par une autre solution pour construire mon interface client.

J'espère que quelqu'un trouvera la solution.

Anna

Hors ligne

 

#10 Tue 22 May 2012 14:16

Clag
Juste Inscrit !
Date d'inscription: 22 May 2012
Messages: 2

Re: connexion php à postgreSQL : undefined function pg_connect()

Bonjour,

J'ai exactement le même problème qu'Anna. J'ai fait les mêmes vérifications ect... Ce problème a-t-il trouvé une solution depuis ?

Merci d'avance !

Hors ligne

 

#11 Tue 22 May 2012 16:52

Clag
Juste Inscrit !
Date d'inscription: 22 May 2012
Messages: 2

Re: connexion php à postgreSQL : undefined function pg_connect()

Problème résolu !

Si quelqu'un se pose la même question, voici l'url de mon sauveur : http://dominique-colombani.fr/domblog/i … hp-et-Wamp

et plus particulièrement (je cite)...

"

Tiens, la version la plus récente fait référence à une dll supplémentaire, libpq.dll.

Tiens, tiens, cette dll est présente dans le répertoire des binaires de php, mais ce répertoire n'est pas indiqué dans la variable d'environnement PATH...

Essayons en configurant correctement la variable PATH pour qu'elle contienne le répertoire des binaires de php (par exemple : c:\wamp\bin\php\php5.2.9-1) et en plaçant la version à jour de php_pgsql.dll dans le répertoire ext. Ça marche !

"

A savoir :  libpq.dll doit être dans le bin d'apache aussi

Hors ligne

 

#12 Wed 23 May 2012 13:13

Alexandre David
Participant occasionnel
Lieu: Saint-Etienne
Date d'inscription: 27 Sep 2011
Messages: 16

Re: connexion php à postgreSQL : undefined function pg_connect()

Pourquoi ne pas passer par la version de Apache préconfigurée pour Postgres et disponible directement à partir du StackBuilder ?

Dernière modification par Alexandre David (Wed 23 May 2012 13:17)

Hors ligne

 

#13 Mon 22 July 2013 13:42

ghassen
Juste Inscrit !
Lieu: Tunis
Date d'inscription: 22 Oct 2010
Messages: 9

Re: connexion php à postgreSQL : undefined function pg_connect()

Le problème sera résolu tout simplement en copiant libpq.dll vers apache\bin\
puis redémarrer le serveur bien sur
smile

Hors ligne

 

#14 Wed 24 July 2013 21:48

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: connexion php à postgreSQL : undefined function pg_connect()

Bonjour,

Pour installer une extension php tu démarres WAMP ensuite tu cliques sur l’icône WAMP en bas à droite

puis menu PHP -> Extensions PHP -> php_pgsql ou php_pdo_pgsql si tu travailles avec PDO

Cordialement.

Dernière modification par michel56 (Wed 24 July 2013 21:49)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

Pied de page des forums

Powered by FluxBB