PHP connexion bdd dans une variable session

hammag -  
manelsousse Messages postés 59 Date d'inscription   Statut Membre Dernière intervention   -
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.

7 réponses

luc648 Messages postés 593 Date d'inscription   Statut Membre Dernière intervention   117
 
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 ;)
0
hammag
 
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.
0
manelsousse Messages postés 59 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Pwoned
 
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).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
manelsousse Messages postés 59 Date d'inscription   Statut Membre Dernière intervention  
 
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?
0
Pwoned
 
if(!isset($_SESSION))
{
session_start();
$_session["maconnec"] = mysql_pconnect(args);
}

Si la session est détruite, il en recrée une.
0
manelsousse Messages postés 59 Date d'inscription   Statut Membre Dernière intervention  
 
le contenu des sessions s'enregistrent dans le PC et ca sera facile a les acceder si quelqun est pro dans le domaine
0
Pwoned
 
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...
0
manelsousse Messages postés 59 Date d'inscription   Statut Membre Dernière intervention  
 
excusez moi jai trompé c vrai se sont les cookies qui sont stockés coté client
0