Posez votre question Signaler

PHP connexion bdd dans une variable session

hammag - Dernière réponse le 16 juin 2009 à 17:28
Bonjour,
je cherche à crée une connexion vers une base mysql et mettre cette connexion dans une variable session pour que je puisse utiliser cette connexion dans autres pages, sans d'être obligé de faire une connexion dans chaque page de mon site.
dans la première page j'ai :
$_SESSION['connexionBDD'] = new DBConnexion('localhost', 'membre', 'membre', 'membre');

où DBConnexion est une classe héritant du mysqli.
normalement dans les autres pages j'utilise cette variable comme suit:
$req = $_SESSION['connexionBDD']->query('SELECT * FROM matable ') or die('Erreur SQL !<br />'.$req.'<br />'.mysql_error());	
				
/CODE

mais voilà, j'ai l'erreur suivante :

[CODE]
Warning: mysqli::query() [mysqli.query]: Couldn't fetch DBConnexion in K:\EasyPHP 3.0\www\Forum\Classes\Messages\ShowMessagesOfDiscussion.php on line 45
Erreur SQL !

donc, est-il possible de passer une connexion dans une variable session ? ou bien y a un autre problème.
Lire la suite 

PHP connexion bdd dans une variable session »

9 réponses
Réponse
+0
moins plus
a ta place je ferais un fichier connection.php avec l'ensemble des éléments de connection et après tu les mets en includes sur tes différentes pages ;)
Ajouter un commentaire
Réponse
+0
moins plus
oui, mais si je ferais comme ça, se sera une connexion ouverte après l'ouverture de chaque page. Or moi je cherche si possible comme créer juste une seule connexion qui sera valable dans tout mon site.
Ajouter un commentaire
Réponse
+0
moins plus
effectivement luc648 on fait un fichier php enregistré sous connection.php et dans chaque page on ecrit include("connexion.php"); avant de selectioner de la base
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Perso, j'utiliserais une méthode un peu différente :

$_session["maconnec"] = mysql_pconnect(arguments);

Ou même mettre ça dans une constante, ou une variable serveur, ...

L'avantage : c'est la même connexion persistante pour toutes les sessions, donc le même ID, la connexion reste ouverte, ...
Bref, c'est une connexion persistante.

Par contre, il faut s'assurer que c'est compatible avec ton infrastructure (notamment contrôler le nombre de connexion SQL autorisées sur le serveur de base de données).
Ajouter un commentaire
Réponse
+0
moins plus
les sessions ne sont pas tj valables essayez d'effacer l'historique de votre navigation et vous voyez que la session est detriute que faire alors?
Pwoned - 16 juin 2009 à 17:16
if(!isset($_SESSION))
{
session_start();
$_session["maconnec"] = mysql_pconnect(args);
}

Si la session est détruite, il en recrée une.
Ajouter un commentaire
Réponse
+0
moins plus
le contenu des sessions s'enregistrent dans le PC et ca sera facile a les acceder si quelqun est pro dans le domaine
Pwoned - 16 juin 2009 à 17:25
Non, dans le PC tu as un identifiant.
Ensuite, il est transmit au serveur et c'est sur le serveur que sont stockées les données.

Là, tu dois confondre avec les cookies, qui sont, eux, stockés coté client.

Ou alors il y a un truc caché dont j'ai jamais entendu parler pour gérer les sessions...
Ajouter un commentaire
Réponse
+0
moins plus
excusez moi jai trompé c vrai se sont les cookies qui sont stockés coté client
Ajouter un commentaire
Ce document intitulé « PHP connexion bdd dans une variable session » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?