PHP connexion bdd dans une variable session

Fermé
hammag - 16 juin 2009 à 16:55
manelsousse Messages postés 59 Date d'inscription lundi 10 mars 2008 Statut Membre Dernière intervention 18 août 2009 - 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.
A voir également:

7 réponses

luc648 Messages postés 593 Date d'inscription mardi 31 juillet 2007 Statut Membre Dernière intervention 20 mai 2010 117
16 juin 2009 à 16:58
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
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 lundi 10 mars 2008 Statut Membre Dernière intervention 18 août 2009
16 juin 2009 à 17:01
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
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 lundi 10 mars 2008 Statut Membre Dernière intervention 18 août 2009
16 juin 2009 à 17:08
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
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 lundi 10 mars 2008 Statut Membre Dernière intervention 18 août 2009
16 juin 2009 à 17:22
le contenu des sessions s'enregistrent dans le PC et ca sera facile a les acceder si quelqun est pro dans le domaine
0
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 lundi 10 mars 2008 Statut Membre Dernière intervention 18 août 2009
16 juin 2009 à 17:28
excusez moi jai trompé c vrai se sont les cookies qui sont stockés coté client
0