1. #1
    Invité régulier
    Inscrit en
    novembre 2009
    Messages
    15
    Détails du profil
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Expert Confirmé
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 846
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 846
    Points : 2 806
    Points
    2 806

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Inscrit en
    novembre 2009
    Messages
    15
    Détails du profil
    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
    Expert Confirmé
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 846
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 846
    Points : 2 806
    Points
    2 806

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Inscrit en
    novembre 2009
    Messages
    15
    Détails du profil
    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.

Discussions similaires

  1. Warning: include() [function.include]: Failed opening
    Par stephcache dans le forum Débuter
    Réponses: 2
    Dernier message: 31/10/2010, 16h40
  2. Warning: pg_query() [function.pg-query]: Query failed: ERREUR:
    Par magbouya dans le forum PHP & PostgreSQL
    Réponses: 1
    Dernier message: 07/06/2010, 15h01
  3. ms query: me génére erreur au moment de l'actualisation
    Par haddani dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/03/2010, 02h28
  4. Réponses: 1
    Dernier message: 19/08/2009, 14h27
  5. Warning: include() [function.include]: Failed opening
    Par FotoXe33 dans le forum Syntaxe
    Réponses: 2
    Dernier message: 12/07/2009, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo