begin process at 2012 05 28 10:07:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Connection & persistance


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Connection & persistance

jeudi 21 avril 2005 à 15:37:09 | Connection & persistance

rastapaye

Bonjour,

Imaginons que je crée une classe # dont le constructeur demande une connexion ouverte à la base de données.

Est-ce que la connection reste ouvert et uniquement dispo pour mon objet tant qu'il est en vie ou est-ce qu'elle retourne toute seule au pool ?

Que préconisez-vous pour gérer la connexion ?

Merci de votre aide,

Rastapaye
jeudi 21 avril 2005 à 18:21:09 | Re : Connection & persistance

Anthomicro

Salut,

ta connexion se fermera à la fin d'exécution du script. Tu peux utiliser le mysql_pconnect à la place du mysql_connect si tu veux garder tes connexions :-)

a ++


    jeudi 21 avril 2005 à 21:39:21 | Re : Connection & persistance

    JeanPoldeux

    Membre Club
    Salut,

    Pour gérer la connexion, tout dépend de ce que ta classe doit faire. Il y a plusieurs possibilités de gérer cette connexion:

    *) Si tu en as uniquement besoin dans ton constructeur afin d'initialiser les champs de la classe, tu peux en ouvrir une dans ce même constructeur et cette connexion sera détruite à la fin de l'execution de celui-ci :
    <?php
    class MyClass
        {
        function MyClass()
            {
            $id_connect = mysql_connect("localhost", "usr", "pwd");
            mysql_select_db("ma_base");
            //Requête et initialisations des champs
            }
         }
    ?>

    *) Si ta connexion ne sert qu'à l'intérieur de ta classe, tu peux prévoir un champ qui retiendra la ressource de la connexion et la rétablir uniquement dans le cas où elle a été perdue :
    <?php
    class MyClass
        {
        function MyClass()
            {
            $this->id_connect = mysql_connect("localhost", "usr", "pwd");
            mysql_select_db("ma_base");
            //Requête et initialisations des champs
            }

        function is_connected()
            {
            if(!$this->id_connect)
                {
                return false;
                }
            else
                {
                return @mysql_ping($this->id_connect);
                }
            }

         function une_fonction()
            {
             if(!is_connected())
                {
                $this->id_connect = mysql_connect("localhost", "usr", "pwd");
                mysql_select_db("ma_base");
                }
             //Traitements qui utilisent la connexion
            }
         var id_connect;
         }
    ?>
    *) Si tu utilises la connexion dans et à l'extérieur de ta classe, tu peux uniquement la passer en paramètre (par référence) de ton constructeur ou de toute autre fonction. Elle sera alors utilisable dans le script qui l'a ouverte:

    <?php
    class MyClass
        {
        function MyClass($id_connect)
            {
            //Requête et initialisations des champs
            $res = mysql_query("SELECT * FROM ma_table",$id_connect)
            }
         function une_fonction()
            {
             if(!$this->id_connect)
                {
                $this->id_connect = mysql_connect("localhost", "usr", "pwd");
                mysql_select_db("ma_base");
                }
             //Traitements qui utilisent la connexion
            }
         var id_connect;
         }
    ?>

    *) Il y a encore la possibilité d'ouvrir une connexion permanente,  le disait Anthomicro avec mysql_pconnect (). Celle-ci restera ouverte jusqu' à sa fermeture. Cependant, çà n'est peut-être pas utile d'occuper des ressources serveur pour rien.

    @++



    jeudi 21 avril 2005 à 21:50:12 | Re : Connection & persistance

    Anthomicro

    Tout à fait, le pconnect consomme plus de ressources (et perso je préfère utiliser toujours connect)


      jeudi 21 avril 2005 à 22:43:43 | Re : Connection & persistance

      rastapaye

      Merci pour toutes ces propositions.

      En fait  je pensais à la troisième et me demandais ce qui se passait quand je placais l'objet en session. Qu'advient-il de la connection ? Reste-t'elle ouvert et ocupée par l'objet ? Redeviens-t'elle dispo pour les autres utilisateurs ?

      Je sais que c'est principalement l'ouverture des connections qui est couteuse en ressource et je préfère limiter cela, mais je suis partager entre la mutualisation des ressources en liberant le connection dès que je n'en est plus besoin, et le fait de la gerder pour les objets qui servent abondemment dans mon projet.

      Merci pour vos lumières.




      Cette discussion est classée dans : connection, connexion, persistance


      Répondre à ce message

      Sujets en rapport avec ce message

      lost connection [ par nougitch ] Bonjour à tous, J'ai lancé un site sur un serveur Free. Hier il fonctionnait parfaitement, ce matin aussi. En revanche, depuis ce midi, j'ai un probl probleme connexion plusieurs BDD [ par ehmarc ] SalutJe sais pas si c'est possible mais je voudrai essayer de me connecter sur plusieurs Base de donnée simultanément, sans pour autant perdre ma conn Connection à un serveur mysql d'un autre pc [ par web21 ] J'ai deux pc en réseaux sur les deux j'ai installé easyphpJ'aimerais à partir de l'un me connecter au serveur mysql de l'autre. Quelqu'un sait-il comm connection entre 2 pc via internet [ par WarriorProg ] SALUT !!!Je voudrai effectuer des transferts de fichiers d environs 2 à 3 Go à un pot. je ne sais pas comment m y prendre.qq pourait il m aider?avons Verifier la connection [ par cbibi ] Voila je cherche à faire un script qui permet de verifier la connection lorsque que l'on est en local , non pas de passer par le server local mais de Connection mssql_connect [ par galldup ] Je ne comprend pas très bien : Quand je me connecte au serveur SQL SERVER 2000 et que je selectionne la base de données nommée 'ESSAI', cela marche. Connexion Oracle9i [ par willinfeo ] Bonjour à tous,j'essaye de me connecter à Oracle9i, mais j'ai le message d'erreur suivant :"PHP has encountered an Access Violation at 612A2217"Ma con Problème de connection à Apache [ par dubitoph ] ChristopheBonjour,J'ai un réseau sans fil à la maison (uniquement pour l'acces à internet => 1pc et un modem/routeur wireless).Lorsque je suis connect TEST SPEED 2 : Appel à vous!!!! [ par defkrie ] Voila je teste un script permettant de déterminer quel est votre type de connection.Afin d'améliorer ce script jai besoin de plusieurs testeurs.Cela v connexion internet [ par aquewel ] salut a tous je voudrais pouvoir detecter unez connexion a internetavec un script est ce ke cela existe ????merci ;-)


      Nos sponsors


      Sondage...

      Comparez les prix

      CalendriCode

      Mai 2012
      LMMJVSD
       123456
      78910111213
      14151617181920
      21222324252627
      28293031   

      Consulter la suite du CalendriCode

      A découvrir



       
      Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
      CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
      CodeS-SourceS.com© est une marque déposée tous droits réservés

      Google Coop CodeS-SourceS Google Coop CodeS-SourceS
      Temps d'éxécution de la page : 1,778 sec (4)

      Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales