Conserver une connexion MySQL entre plusieurs pages

Résolu
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 2 oct. 2008 à 15:39
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 3 oct. 2008 à 09:35
Bonjour,

J'aimerais conserver ma connexion entre 2 pages php.

Pour simplifier, dans ma 1ere page, je sauvegarde des données utiles et dans la seconde je les modifie et je reviens avec dans la 1ere pour les traiter.

Pour faire des tests, j'ai fait comme ceci :
Dans 1 fichier j'ai :
$_SESSION['db_conn'] = mysql_pconnect($host,$user,$passwd) ;
 mysql_selectdb($bdd, $_SESSION['db_conn']);

dans l'autre, par exemple :
mysql_query($query, $_SESSION['db_conn']); // creation et remplissage d'une table temporaire

Je reviens dans le 1er fichier pour une autre requete et j'ai de nouveau:
mysql_query($query, $_SESSION['db_conn']);
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource

De plus pour les test j'utilise  mysql_pconnect alors qu'à terme, je ne veux pas de connexion persistente.

Mon but est de faire un 'CREATE TEMPORARY TABLE' que la table soit assessible dans mes 2 pages et quand je quitte, je ferme la connexion ce qui détruit automatiquement la table temporaire.

Quelqu'un peut-il me guider ?

Merci

2 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
2 oct. 2008 à 17:56
Salut,

On ne peut pas conserver une connexion MySQL active d'une page à l'autre. En fait, en utilisant une connexion persistante, PHP va conserver une connexion active et la réutiliser si elle est disponible. Mais UNIQUEMENT si mysql_connect() a été appelé avec les mêmes arguments que la première fois.
De même, une table temporaire est liée à la connexion par laquelle elle a été créée. Elle sera donc supprimée à la fin du script. Avec une connexion persistante, je ne sais pas comment ça se passe... Mais sur un site avec un peu de trafic, on ne peut pas compter sur le fait qu'on va garder la même connexion. Il est donc préférable de toujours considérer qu'une table temporaire est détruite à la fin du script, en même temps que la connexion MySQL est fermée.

Il n'y a pas d'alternative. Même l'utilisation d'XmlHTTPRequest (vulgairement : Ajax), on ne pourra pas le faire, puisque XmlHTTPRequest appelle un script à chaque requête, lequel se termine en fermant les connexions MySQL qu'il a pu ouvrir.

Conclusion : la méthode n'est pas bonne...

Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
3
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
3 oct. 2008 à 09:35
Merci,

Je vais donc réfléchir à une autre alternative. Peut-être une méthode un peu bourrin, c'est à dire, créer un fichier xml temporaire, au lieu d'une table.
0
Rejoignez-nous