IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Table inexistante alors que je viens de la créer


Sujet :

PostgreSQL

  1. #1
    Invité
    Invité(e)
    Par défaut Table inexistante alors que je viens de la créer
    Bonjour,

    Après quelques problèmes pour l'installation et le le lancement de PostgreSQL, je sollicite votre aide pour un petit problème de table.

    1. j'ai créé un user (avec postgres) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    createuser -A -D -E -P barnabe
    2. J'ai créé une base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE DATABASE mabase WITH ENCODING='utf8' OWNER barnabe;
    3. J'ai géré les droits sur la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GRANT ALL on database mabase TO PUBLIC;
    (je limiterai les droits lorsque cela fonctionnera)

    4. J'ai créé des tables dans mabase :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Create table TESTS(
    IDTEST serial,
    COLONNE_1 varchar,
    COLONNE_2 varchar,
    constraint PK_TESTS primary key (IDTEST)
    );
    5. J'ai inséré un enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into TESTS (COLONNE_1, COLONNE_2) values ('Fraise','Chocolat');
    6. J'ai voulu faire un select sur cette table depuis une page web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $conn = pg_connect("host=localhost port=5432 dbname=mabase user=barnabe password=*******");
    if (!$conn) {
          die("Couldn't Connect ".pg_last_error());
    }
     
    $res0 = pg_query($conn, "select * from TESTS");
    while ($row = pg_fetch_array($res0, NULL, PGSQL_NUM)) {
            echo " >> ".$row[0];
    }

    j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: pg_query() [function.pg-query]: Query failed: ERROR: relation "tests" does not exist in /home/sites/monsite/htdocs/administration/index.php on line 23 (correspond à la ligne du pg_query)
    oups ! pourtant j'ai accès à la table avec shell...

    Qu'ai-je oublié de configurer ?

    je n'ai pas touché au fichier pg_hba.conf,
    en fait j'ai un fichier "/usr/local/pgsql/share/pg_hba.conf.sample"
    dois-je le renommer en "/usr/local/pgsql/share/pg_hba.conf" ?
    le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
     
    @remove-line-for-nolocal@# "local" is for Unix domain socket connections only
    @remove-line-for-nolocal@local   all         all                               @authmethod@
    # IPv4 local connections:
    host    all         all         127.0.0.1/32          @authmethod@
    # IPv6 local connections:
    host    all         all         ::1/128               @authmethod@
    Merci beaucoup pour votre aide.

    ps) rappel : Debian Sarge stable, PGSQL 8.1.0

  2. #2
    Candidat au Club
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je vais dire une connerie mais:

    "select * from TESTS"
    et

    relation "tests" does not exists
    C'est pas juste un problème de casse dans le nom de ta table?

  3. #3
    Invité
    Invité(e)
    Par défaut pas de pb de casse
    malheureusement non, cela n'a rien à voir avec la casse...
    la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from TESTS;
    retourne un résultat en shell mais rien sur ma page web.


  4. #4
    Invité
    Invité(e)
    Par défaut Solution
    well-well-well ...
    bon, voilà, mon problème était dû à une petite erreur de compréhension du fonctionnement du terminal interactif PostgreSQL (lancé avec "psql" en shell).

    je m'explique :

    avant de créer mes tables (dont TESTS), je ne me suis pas connecté à la base que je venais de créer ("mabase") DONC les tables créées l'ont été dans la base "postgres", tout bêtement !!
    Normal que lorsque, dans mon script php, j'interrogeais la table "TESTS" dans "mabase" j'obtienne l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    relation "tests" does not exist
    voilà... de longues heures de recherche... seulement pas ça !! On ne m'y reprendra plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    psql  -- pour ouvrir le terminal interactif PostgreSQL
     
    CREATE DATABASE mabase WITH ENCODING='utf8' OWNER barnabe;
     
    \connect mabase barnabe   -- pour se connecter à la nouvelle base de données en tant que barnabe
     
    Create table TESTS(
    IDTEST serial,
    COLONNE_1 varchar,
    COLONNE_2 varchar,
    constraint PK_TESTS primary key (IDTEST)
    );
    Bon allez je vous laisse, j'ai maintenant tout en main pour créer une jolie base et développer quelques pages web, ouf !


    ps) j'ai trouvé mon erreur en consultant la page
    http://www.postgresql.org/docs/8.1/static/app-psql.html
    Dernière modification par Deepin ; 30/07/2011 à 09h44.

Discussions similaires

  1. Erreur #1146: La table n'existe pas, alors que si
    Par Nazario dans le forum Requêtes
    Réponses: 8
    Dernier message: 09/09/2008, 18h42
  2. Réponses: 4
    Dernier message: 31/08/2007, 11h32
  3. Réponses: 28
    Dernier message: 23/08/2007, 11h19
  4. no such table: carte alors que cette table existe
    Par Bubble724 dans le forum SQLite
    Réponses: 3
    Dernier message: 13/07/2007, 22h04
  5. [MySQL] réponse vide alors que le champs existe dans la table, sans retour d'erreur
    Par ben_skywalker dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/02/2007, 14h20

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