Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité régulier
    Profil pro Arnold Bouya
    Inscrit en
    novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Nom : Arnold Bouya

    Informations forums :
    Inscription : novembre 2009
    Messages : 15
    Points : 5
    Points
    5

    Par défaut Warning: pg_query() [function.pg-query]: Query failed: ERREUR:la relation etc

    Je viens d'installer phpPgAddmin 4.2.3 (PHP 5.3.0) dans Wampserver 2.0 pour pouvoir utiliser la base PostgreSQL 8.4 mais j'ai une erreur
    sur la fonction pg_query alors que la connexion à la base semble bien établie.

    Mon code est le suivant :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    $connexion = pg_connect("host=localhost dbname=BD_ZAC user=postgres password=postgres");
    IF(! $connexion) {
    	echo "La connexion à la base BD_ZAC est impossible.";
    }	else {
    	echo "Connexion ok";
     
    	//ON soumet cette requête au serveur
    	$result=pg_query($connexion, "SELECT Communes.Code_Insee, Communes.Nom_Com FROM Communes");
    	}
    ?>
    Et l'erreur renvoyée est la suivante :

    Connecxion ok
    Warning: pg_query() [function.pg-query]: Query failed: ERREUR: la relation « communes » n'existe pas LINE 1: SELECT Communes.Code_Insee, Communes.Nom_Com FROM Communes ^ in E:\wampserveur\www\Applications\testConnexionPostgres.php on line 20

    Warning: pg_fetch_array() expects parameter 1 to be resource, boolean given in E:\wampserveur\www\Applications\testConnexionPostgres.php on line 47

    Comment faire pour lever cette erreur ?

    Je ne connais pas grand chose dans l'utilisation web des bases de données. Mais j'aimerais basculer nos bases Access vers PostgreSQL.


    Merci de votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 803
    Points : 2 476
    Points
    2 476

    Par défaut

    Le message d'erreur laisse penser à un problème de distinction majuscules/minuscules.
    La table nommée Communes aurait été créée avec des guillemets:
    Code :
    1
    2
    3
    4
     
    CREATE TABLE "Communes" (
    ...
    );
    mais dans la requête elle est accédée sans guillemets.

    Ce qu'il faut faire, c'est se fixer une convention: pour chaque identifiant (notamment tables et colonnes) il faut soit mettre des guillemets tout le temps, soit jamais, cette dernière solution étant évidemment la plus simple.

    Il faut savoir que certains logiciels comme pgadmin ont des interfaces de création de tables qui ajoutent implicitement les guillemets dans certaines circonstances (sans spécialement informer l'utilisateur des conséquences).

  3. #3
    Invité régulier
    Profil pro Arnold Bouya
    Inscrit en
    novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Nom : Arnold Bouya

    Informations forums :
    Inscription : novembre 2009
    Messages : 15
    Points : 5
    Points
    5

    Par défaut

    Effectivement, ma table a été créée avec des guillemets.
    Il me faut donc recréer la table sans les guillemets ? Où, y-a-t-il un moyen d'introdure les guillemets dans la requête ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 803
    Points : 2 476
    Points
    2 476

    Par défaut

    Citation Envoyé par magbouya Voir le message
    Effectivement, ma table a été créée avec des guillemets.
    Il me faut donc recréer la table sans les guillemets ? Où, y-a-t-il un moyen d'introdure les guillemets dans la requête ?
    Il est possible de renommer la table sans la recréer
    Code :
    ALTER TABLE "Communes" RENAME TO communes
    Il est aussi possible de mettre des guillemets dans les requêtes, mais c'est à toi de choisir.

  5. #5
    Invité régulier
    Profil pro Arnold Bouya
    Inscrit en
    novembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Nom : Arnold Bouya

    Informations forums :
    Inscription : novembre 2009
    Messages : 15
    Points : 5
    Points
    5

    Par défaut

    Merci estofilo.

    En virant les guillemets de la table et des colonnes, ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •