Page 1 sur 1

Connexion, déconnexion, reconnexion... à la BD

Posté : 02 juil. 2005, 11:33
par o0Zz
Bonjour alors voici la question de la semaine :D j'ai chercher sur des tutos et je n'est jamais vraiment eu une reponse ;) alors voila quand j'envoi une requete a ma base de donner sql :
-je connect
-je me met dans la bonne table
-j'execute ma requete
-je ferme la connection
bon et enfet ma question est : est-ce que je suis toujour obligé de me reconencter et de fermer le connection a chaque fois que je réactualise la ma page ou que je change de page ou est se qu'il y a moyen de me connecter une fois et de verifier avan chaque requette si je sui bien connecter et si je ne le suis pas ben de me connecter ;) !!
voila ca a l'air bete mai bon je pose quand mm la question ;)
ps:si on pe verifier si la connection est existante comment je peut faire ?
Merci d'avance et bonne continuation a tous !!! ;)

Posté : 02 juil. 2005, 11:41
par albat
Personnellement, je procède comme suit :

J'ai créé un fichier db.php dans lequel j'ouvre ma connexion à la base
en indiquant les paramètres requis (compte, mot de passe,...)

J'insère dans la partie <head> de chacune de mes pages le script :
<?php
require("db.php");
?>
et... je ne mets aucun mysql_close().
MAis ça, je crois que c'est mal... :oops:

Posté : 02 juil. 2005, 12:04
par o0Zz
oui je pense aussi que c'est pas le top! enfet moi je pose cette question parceque je trouve que ma BD n'est pas aussi rapide que sur d'autre site et c'ete pour l'optimiser un peu ;) c'a se jou à quelque 1/2 seconde mais bon c'est toujours sa de gagné ;) !
Merci de ta reponse:)

Posté : 02 juil. 2005, 13:04
par Ripat
et... je ne mets aucun mysql_close().
MAis ça, je crois que c'est mal... :oops:
Mais non Albat. Ton auto flagellation n'est pas indispensable car Madame PHP a tout prévu. Les connexions au serveur MySQL sont libérées automatiquement.

Du moins avec mysql_connect:
Le lien sera fermé automatiquement dès que l'exécution du script sera terminée, à moins d'être fermé explicitement avec mysql_close().
...
Note : Notez que cette commande n'est pas nécessaire, car toutes les connexions non persistantes seront automatiquement fermées à la fin du script.
...
Grâce au système de comptabilisation des références introduit en PHP 4 (avec le moteur Zend), PHP détecte automatiquement qu'une ressource n'est plus utilisée (comme Java). Dans ce cas, toutes les ressources systèmes utilisées par cette ressource sont libérées automatiquement. Pour cette raison, il est rarement nécessaire de libérer la mémoire manuellement en utilisant les fonctions free_result associées.
Si on utilise mysql_pconnect c'est une autre affaire. Il y a une discussion très intéressante là-->
http://be.php.net/manual/fr/features.pe ... ctions.php

oOZz => change le sujet du topic car "question bête" ne servira pas beaucoup pour les recherches ultérieures... :wink:

Posté : 02 juil. 2005, 18:09
par albat
oOZz => change le sujet du topic car "question bête" ne servira pas beaucoup pour les recherches ultérieures... :wink:
I did it. ;)

Posté : 03 juil. 2005, 13:37
par o0Zz
Ok je vous remercie beaucoup donc si j'ai bien compri pour que sa soit plus rapide il me fau une connection permanante ;) pconnect mais bon je pense que je v me contenter de se que j'ai et pour mysql_close c'est super interessant moi qui menbêté a toujours bien fermer mes connection bah ca sert a rien ;) ca ira plu vite maintenant :D merci beaucoup a tous les 2 ;) et dsl pour le topic jrecommencerais plus :oops:
merci et bonne continuation !

Posté : 03 juil. 2005, 14:29
par pjl
oui je pense aussi que c'est pas le top! enfet moi je pose cette question parceque je trouve que ma BD n'est pas aussi rapide que sur d'autre site et c'ete pour l'optimiser un peu ;) c'a se jou à quelque 1/2 seconde mais bon c'est toujours sa de gagné ;) !
Merci de ta reponse:)
La rapidité dépend beaucoup de ton code et de l'optimisation de ta BDD et des requêtes.