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 :

[PHP & PostGreSQL] Connexion persistante & Res Id


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 28
    Points
    28
    Par défaut [PHP & PostGreSQL] Connexion persistante & Res Id
    Bonjour,

    Comment sont réellement gérées les connexion à PostGreSQL via PHP/apache ??

    En fait, mon problème c'est que quelquesoit la session, je récupère toujours le même Resource Id de connexion ...
    Tout irait bien si toutes les requêtes avaient bien un Resource Id différent...
    Or il se trouve que sur des sessions différentes, certains Resource Id de requêtes sont réattribués et cela fait planter un parcours de resultset si je tape dans un même Resource Id existant dans 2 sessions différentes avec le même Id de connexion ....

    J'ai essayé de relancer apache mais sans succès... je me retrouve toujours avec le même Res Id de connexion...
    Il change quand je fais tourner une ancienne version de mon site sur un virtual host différent ...

    des idées ??

    Si vous voulez plus de détails sur les objets et sessions, cf le thread que j'ai ouvert aussi sur le forum PHP : http://www.developpez.net/forums/viewtopic.php?t=111356

  2. #2
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut
    bah justement c'est le role d'une connexion persistante non d'avoir toujours le même identifiant de connexion

  3. #3
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    oui mais même si je ne fais pas de connection persistante (connect simple) ben pareil, j'ai tjrs le même Id
    mais le vrai pb c'est les requêtes qui se retrouvent avec les mêmes Id aussi !!

  4. #4
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut
    bah c normal si tu ne fermes pas la connexion après chaques requête ou transaction!

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Mais elle n'est pas sensé se fermer à la fin du script ?
    Et même en fermant, je retrouve les mêmes Id...

  6. #6
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut
    Citation Envoyé par BuLma
    Mais elle n'est pas sensé se fermer à la fin du script ?
    Et même en fermant, je retrouve les mêmes Id...
    non pas du tout faut appeler la fonction nécessaire! mais sinon cela me parait bizarre, Stessy ne va pas tarder à apparaitre, le grand chef

  7. #7
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Tout à fait Wello00, tu es obligé de fermer une connexion.
    Bulma imagines un peu que tu ne fermes pas tes connexions, tu vas vite être saturée en connexions et le serveur va finir par t'envoyer une erreur du type

    too many clients
    Je travailles avec java pour générer les interfaces et interagir avec PostgreSQL, ce que je fais dans ce cas c'est que pour chaque écran je crée un objet Connexion. Tant que je reste avec cet écran ma connexion reste ouverte mais une fois que je change d'écran, je ferme obligatoirement ma connexion et j'en recrée une à l'écran suivant. Je fais cela car tu gagnes en vitesse car ce qui te prend le plus de temps c'est justement la connexion à la base.

    En php tu appeles juste le bout de code suivant

    pour fermer ta connexion.

    Citation Envoyé par Wello00
    Stessy ne va pas tarder à apparaitre, le grand chef
    Je ne suis pas le grand chef, ni le grand gourou de PostgreSQL, juste un passionné de cet SGBD assez peu connu du grand public.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  8. #8
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Bon alors, j'ai à peu près tout essayer ...

    Finalement, là je fais comme tu dis, à savoir en début de script:
    • - je créé un nouvel objet ki gère la connexion
      - j'ouvre la connexion avec pg_connect

    ensuite je fais plein de requetes
    enfin, je ferme la connexion avec pg_close

    mais ça n'empeche que d'un navigateur à l'autre, dans des sessions différentes, je me retrouve avec des Id de connexion et des Id de Requetes Identiques !! ce qui fait planter si je ne récupère pas toutes les données du resultat de la requete immédiatement apres l'exécution.

  9. #9
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Par ailleurs, je viens de revérifier la doc PHP et :
    pg_close() retourne FALSE si l'index de connexion n'est pas valable, et TRUE sinon. pg_close() ferme la connexion au serveur PostgreSQL associé à connection.

    Note : Il n'est généralement pas nécessaire de fermer une connexion non persistante, car elles sont automatiquement fermées à la fin d'un script.

    pg_close() ne ferme pas les connexions persistantes ouvertes avec pg_pconnect().

  10. #10
    Nouveau membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    bon ayé, j'ai trouvé le pb qui faisait planter chez moi !!

    cété un close qui vidait tous les résultats de requêtes dans ma classe d'affichage, il était exécuté avant la fin du script !!

    enfin, ça n'empêche que je me demande tjrs pkoi : on retrouve tjrs les mêmes Id de connexion et de requêtes partout

    Merci pour tout

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

Discussions similaires

  1. Connexion persistante: Javascript et PHP
    Par xavier-vdw dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 06/05/2011, 00h21
  2. [PostgreSQL] connexion php et postgresql
    Par yourlian dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/03/2009, 20h29
  3. [ postgresql - php ] problèmes de connexion a une base
    Par diableblanc dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/07/2005, 19h27
  4. php-PostGreSql connexion
    Par watcha2020 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/07/2005, 08h59
  5. php+postgresql->connexion
    Par lulu0809 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 17/02/2005, 13h03

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