Connexion Mysql

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
BberXIII81
Lézard vert
Messages : 190
Inscription : 10 juin 2007, 10:06

Connexion Mysql

Message par BberXIII81 »

Bonjour,
Juste une petite question concernant la connexion Mysql,
Est-il préférable d'en ouvrir et fermer une seule qui englobe mes conditions ou en ouvrir et fermer une dans chaque condition.

C'est assez compliqué à expliquer alors j'ai fait deux petits schémas:

Code : Tout sélectionner

Ouverture Mysql
     Condition1
          {
                 Action1
          }
     Condition2
          {
                 Action2
          }
Fermeture Mysql

Code : Tout sélectionner

     Condition1
          {
                 Ouverture Mysql
                 Action1
                 Fermeture Mysql
          }
     Condition2
          {
                 Ouverture Mysql
                 Action2
                 Fermeture Mysql
          }
Préférable en terme de protection et de performance (rapidité de traitement, ...)

En vous remerciant de vos conseils

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

À ma connaissance, l'étape la plus lente, lors d'une opération avec la base de données, c'est la connexion (sauf si tu traites vraiment énormément de données sur de nombreuses tables). Il faut donc éviter au maximum de répéter l'opération. On placera donc la connexion en dehors de la boucle (et la déconnexion en fin, mais c'est implicite). Souvent ça se fait même tout au début dans un code de type header.
Plus généralement, on essaye de "sortir" de la boucle tout ce qui n'y est pas strictement nécessaire (la connexion en est une). Je choisirais donc ton code 1.

Niveau sécurité, je ne sais pas trop, mais je ne pense pas que ça ait d'impact : ce qui compte c'est que tu vérifies bien tout ce qui est passé à MySQL.

PS : en perl, il existe des applications comme catalyst qui démarrent un serveur, se connectent, et ne se déconnectent jamais, restant connectées au serveur de base de données, potentiellement pour toujours. Je n'ai pas connaissance de risque de sécurité liés spécifiquement à ce problème. :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1

Edition : je confond boucle et condition :oops: Le passage «on essaye de "sortir" de la boucle tout ce qui n'y est pas strictement nécessaire» reste cependant valable, le but étant de n'écrire les choses qu'une seule fois : si tu veux par la suite changer quelque chose, tu n'as pas besoin de le répéter partout.
BberXIII81
Lézard vert
Messages : 190
Inscription : 10 juin 2007, 10:06

Message par BberXIII81 »

Tu me rassures, je pensais que laisser ma connexion ouverte toute ma page dépensait plus de ressources et ralentissait le traitement de celle-ci.
Je vais donc faire comme ce que tu me conseilles.
Je te remercie pour cette rapide réponse.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Si tu utilises PHP il y a la fonction mysql_pconnect() qui te permet de réutiliser la dernière connexion ouverte, si jamais elle existe.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
BberXIII81
Lézard vert
Messages : 190
Inscription : 10 juin 2007, 10:06

Message par BberXIII81 »

Ok merci, je vais y jeter un oeil. :)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités