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

PHP & Base de données Discussion :

instance de db dans variable de session


Sujet :

PHP & Base de données

  1. #1
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut instance de db dans variable de session
    Bonjour,
    J'ai un petit problème de variable de session. Je m'explique.
    Je crée un objet db (sqlite) avec lequel je fais une requete.
    Avec cette requete je crée un autre objet que je stocke dans une variable de session.
    Si je stocke également mon objet db dans une variable de session, je perds toute mes $_SESSION['xxx'] sur les autres pages du site, elles sont à NULL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        $produits = new ListProduits;
        $db = new DbVentes();
        $_SESSION['produits'] = $produits;
        $_SESSION['db'] = $db;
        $db->ConnectDb();
     
    	foreach ($db->GetListProd() as $prod)
    	{
    		$produit = new Produit($prod['id'], $prod['nom'],$prod['prixunite']);
    		$produits->AddProd($produit);
    	}
    Si je ne stocke pas mon objet db $_SESSION['db'] = $db; tout se passe normalement
    Dans ConnectDb je ne fais que créer un nouvel objet Sqlite3
    Ce n'est pas dramatique en soi, je peux très bien ouvrir une nouvelle connexion à la db dans les autres pages mais ça m'intrigue.
    Quelqu'un aurait-il une explication ?

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 418
    Par défaut
    Bonjour,

    La connexion à la bdd est une variable spéciale de type resource, or les variables de ce type ne peuvent pas être stockées en session.
    C'est le comportement normal de PHP et il est en effet nécessaire d'ouvrir une nouvelle connexion.

    https://www.php.net/manual/fr/intro.session.php

  3. #3
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 614
    Par défaut
    Yep, merci !

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

Discussions similaires

  1. [MySQL] Récupérer id dans variable de session
    Par kate59 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/02/2009, 01h06
  2. Élément tableau dans variable de session
    Par akara dans le forum Langage
    Réponses: 9
    Dernier message: 03/08/2007, 15h32
  3. Array dans variables de session
    Par Mengué georges dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/02/2007, 15h21
  4. tableau dans variable de session
    Par ddeee dans le forum ASP
    Réponses: 2
    Dernier message: 20/03/2006, 17h48
  5. Réponses: 2
    Dernier message: 09/10/2005, 16h35

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