PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 25/03/2011 14:47:14

K-LiBR3
Membre

Probleme au niveau logiciels... postgres et php

Bonjour,

Lorsque je lance ce script php :

<?php
    $connect = pg_connect("host=localhost port=5432 dbname=hayj user=root password=postgres");
    if(!$connect) { echo "<p>La connection à la base a échoué - Fin du programme.</p>\n"; exit; }

    $query = pg_query($connect, "SELECT * FROM maTable");
    if(!$result) { echo "<p>La requête a échoué - Fin du programme.</p>\n"; exit; }

    while($row = pg_fetch_array($query, NULL, PGSQL_BOTH))
    {
        echo "Voici une ligne de maTable : $row[0]";
        echo "<br />\n";
    }
?>

Il me dit qu'il ne connait pas la fonction pg_connect alors que j'ai suivit ce tutoriel http://www.siteduzero.com/tutoriel-3-11 … erver.html (que j'ai réessayé 7 fois)
A côté de ça, je suis connecté sur la base avec pgadmin, donc le serveur est bien lancé et sa devrai fonctionner théoriquement non ?

merci d'avance pour vos réponses ^^

Hors ligne

#2 25/03/2011 15:35:23

gleu
Administrateur

Re : Probleme au niveau logiciels... postgres et php

pg_connect est une fonction PHP, donc le problème est au niveau PHP. L'extension pgsql dans php.ini doit ne pas être bien configuré ou pris en compte.


Guillaume.

Hors ligne

#3 25/03/2011 15:43:36

K-LiBR3
Membre

Re : Probleme au niveau logiciels... postgres et php

Connais tu un package ou un tutoriel clair qui me permettrai de résoudre mon probleme ?

Hors ligne

#4 25/03/2011 15:51:44

gleu
Administrateur

Re : Probleme au niveau logiciels... postgres et php

Pas spécialement. Il suffit simplement de faire en sorte qu'il y ait une ligne "extension=php_pgsql.dll" dans le fichier php.ini (et que cette ligne ne commence pas par un point-virgule). Je ne sais pas s'il faut relancer apache mais ce serait bien possible.


Guillaume.

Hors ligne

#5 25/03/2011 16:04:54

K-LiBR3
Membre

Re : Probleme au niveau logiciels... postgres et php

Ok merci je vais essayé.

Une dernière question ^^ : est ce que tu sais si on peut utilisé le language plpgsql chez free parce que apparemment tout le monde dit, sur les forum, qu'on ne peut pas.. bien dommage, il faut donc ce payer un vrai nom de domaine etc pour pouvoir utiliser les fonctions :S

Hors ligne

#6 25/03/2011 16:15:50

gleu
Administrateur

Re : Probleme au niveau logiciels... postgres et php

Aucune idée. Mais peut-être que quelqu'un d'autre le sait sur le forum...


Guillaume.

Hors ligne

#7 27/03/2011 17:18:24

K-LiBR3
Membre

Re : Probleme au niveau logiciels... postgres et php

Rebonjour,

En fin de compte sa ne marche pas :S j'ai tout essayé mais rien à faire, il ne connait pas pg_connect !

Hors ligne

#8 27/03/2011 19:13:43

Marc Cousin
Membre

Re : Probleme au niveau logiciels... postgres et php

Alors c'est probablement qu'il manque la librairie php_pgsql, ou quelque chose du genre. Il devrait y avoir un message d'erreur dans la log apache, disant qu'il n'a pas réussi à charger la librairie, et probablement la raison avec.


Marc.

Hors ligne

#9 28/03/2011 20:10:59

K-LiBR3
Membre

Re : Probleme au niveau logiciels... postgres et php

Je vais refaire tout dans les règles de l'art et en essayant de comprendre
Je vous dirai si ça ne marche pas ^^ merci pour votre aide en tout cas !!!

Hors ligne

#10 22/04/2013 10:47:29

Marine
Membre

Re : Probleme au niveau logiciels... postgres et php

Bonjour !

Je me permets de relancer le topic car je suis dans un cas similaire !
J'essaie de me connecter à ma base de données postgresql via un script PHP utilisant pg_connect, et j'ai l'impression que cette fonction n'est pas reconnue, bien que je n'ai pas l'indication comme quoi elle n'ait pas reconnue (je n'ai en fait aucun message d'erreur, mais il ne se passe rien, même le "or die..." après pg_connect n'affiche pas son message d'erreur)

J'ai suivi les indications fournies par ce topic :

J'ai rajouté extension=php_pgsql.dll comme indiqué par gleu (et redémarré apache),

J'ai regardé le log d'apache, et rien d'anormal il me semble :
127.0.0.1 - - [22/Apr/2013:10:38:37 +0200] "GET /public_html/formulaire.php HTTP/1.1" 200 775 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0"
127.0.0.1 - - [22/Apr/2013:10:38:46 +0200] "POST /public_html/formulaire_cible.php HTTP/1.1" 500 471 "http://localhost/public_html/formulaire.php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0"

J'ai aussi fait "sudo apt-get install php5-pgsql" au cas où il me manque le module php de postgres.

Je suis désespérée cela fait 3 jours que je cherche ce qui cloche...
K-LIBR3 as-tu trouvé une solution ? (Si tu t'en rappelles...)

Merci beaucoup à toute personne prenant le temps de me lire ou de me répondre smile

PS : J'utilise Linux Ubuntu 12.10 64 bits

Hors ligne

#11 22/04/2013 11:11:22

rjuju
Administrateur

Re : Probleme au niveau logiciels... postgres et php

Bonjour,

si votre serveur est sous linux, l'extension .dll est à supprimer. Avez-vous redémarré apache ? Y a-t-il des erreurs dans les logs apache ? Vous pouvez afficher un phpinfo() pour voir si postgres est bien géré sur votre installation.

Hors ligne

#12 22/04/2013 11:52:09

Marine
Membre

Re : Probleme au niveau logiciels... postgres et php

Bonjour rjuju, et merci pour votre rapide réponse !

Oui en effet j'ai redémarré apache plusieurs fois, ceci dit j'ai remarqué des anomalies que je ne comprends pas :
Lorsque je le stoppe (/etc/init.d/apache2 stop, j'obtiens un OK)
Et que je vais sur mon navigateur sur http://localhost, j'ai toujours le message "It works !"... Ce n'est pas plutôt censé ne pas marcher ?
En tout cas ensuite je fais /etc/init.d/apache2 start.
(J'ai aussi fait avec /etc/init.d/apache2 reload).

Les logs apache ne présentent aucun message d'erreur.

Je viens de redémarrer apache encore une fois (après avoir enlevé une ligne dans mon script de connexion juste pour alléger) et maintenant... Ca semble marcher !
Je pense que mon problème est résolu même si je ne comprends pas vraiment pourquoi... !
(Pourtant j'ai encore l'extension .dll dans mon php.ini ...)

PS : J'avais vérifié aussi le phpinfo(), cela semble être OK, j'obtiens plein d'informations dont :
pdo_pgsql
PDO Driver for PostgreSQL    enabled
PostgreSQL(libpq) Version     9.1.8
Module version     1.0.2
Revision     $Id$

pgsql
PostgreSQL Support    enabled
PostgreSQL(libpq) Version     9.1.8
PostgreSQL(libpq)     PostgreSQL 9.1.8 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2, 64-bit
Multibyte character support     enabled
SSL support     enabled
Active Persistent Links     0
Active Links     0

Directive    Local Value    Master Value
pgsql.allow_persistent    On    On
pgsql.auto_reset_persistent    Off    Off
pgsql.ignore_notice    Off    Off
pgsql.log_notice    Off    Off
pgsql.max_links    Unlimited    Unlimited
pgsql.max_persistent    Unlimited    Unlimited

Hors ligne

Pied de page des forums