Partage
  • Partager sur Facebook
  • Partager sur Twitter

fermer MySQL

ça sert a quoi ???

Sujet résolu
    13 mai 2006 à 8:30:58

    Bonjour,
    A quoi ça sert de fermer MySQL ça change quelque chose ? rapiditée/optimisation ?

    Merci d'avance pour vos réponses
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2006 à 8:39:18

      Oui ça devrait améliorer la rapidité et surtout ça évite les bugs de scripts ! :-°
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2006 à 8:59:18

        C'est a dire les bugs de scripts ? (j'ai jamais eu un bug a cause de ça et ça fait un bout de temps que je code :p )
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2006 à 9:15:28

          Je suis aussi curieux de savoir en quoi un mysql_close() évite les bugs ????
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2006 à 9:20:54

            C'est logique !

            Si vous ne fermez pas SQL et qu'il y a une faille dans votre code qui permette d'envoyer du texte (donc pour le pirate, une requête), il va pas se gêner !

            <?php
                    include ('conf.inc.php');
                   
                    mysql_connect($hote,$user,$pass);
                            mysql_select_db($bdd);
                            $reponse = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 0,2")or die(mysql_error);
            //on oublie de fermer
            $_POST['message'] = une requête frauduleuse et dangereuse
                         


            Par contre, si vous fermez SQL, le pirate va devoir ré-ouvrir SQL pour envoyer une requête frauduleuse (beaucoup plus difficile, surtout s'il a pas les pass).

            <?php
                    include ('conf.inc.php');
                   
                    mysql_connect($hote,$user,$pass);
                            mysql_select_db($bdd);
                            $reponse = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 0,2")or die(mysql_error);
                            mysql_close();//alors que si on ferme
            //il faut tout ré-ouvrir avec les mysql_connect etc...
            //et enfin entrer la requête


            C'est plus dur !

            Compris ?! ;)
            • Partager sur Facebook
            • Partager sur Twitter
              13 mai 2006 à 9:43:16

              Citation : Yôkaï

              C'est logique !

              Compris ?! ;)


              Tu racontes vraiment n'importe quoi !
              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2006 à 9:48:02

                Citation : Yôkaï

                C'est logique !

                Si vous ne fermez pas SQL et qu'il y a une faille dans votre code qui permette d'envoyer du texte (donc pour le pirate, une requête), il va pas se gêner !

                <?php
                        include ('conf.inc.php');
                       
                        mysql_connect($hote,$user,$pass);
                                mysql_select_db($bdd);
                                $reponse = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 0,2")or die(mysql_error);
                //on oublie de fermer
                $_POST['message'] = une requête frauduleuse et dangereuse
                             



                Par contre, si vous fermez SQL, le pirate va devoir ré-ouvrir SQL pour envoyer une requête frauduleuse (beaucoup plus difficile, surtout s'il a pas les pass).

                <?php
                        include ('conf.inc.php');
                       
                        mysql_connect($hote,$user,$pass);
                                mysql_select_db($bdd);
                                $reponse = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 0,2")or die(mysql_error);
                                mysql_close();//alors que si on ferme
                //il faut tout ré-ouvrir avec les mysql_connect etc...
                //et enfin entrer la requête



                C'est plus dur !

                Compris ?! ;)



                Bon résonnement, à part que les visiteurs ne peuvent pas érire du code php et l'executer. :lol: Parce que sinon il y aurait vraiment une ENORME faille de sécurité. Il ne faut pas confondre les injections SQL, et l'execution de tout un morceau de code...
                • Partager sur Facebook
                • Partager sur Twitter
                  13 mai 2006 à 9:53:50

                  C'est clair...En fait, fermer mysql évite d'avoir trop de connexion ouverte, ce qui te donnera une belle erreur, et permet d'aller plus vite .
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Découvrez les grandes inventions et inventeurs qui font de notre monde ce qu'il est aujourd'hui :)
                    13 mai 2006 à 9:56:05

                    De plus, je crois php ferme automatiquement la connexion à la fin du code, non ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 mai 2006 à 9:57:22

                      Citation : legende

                      De plus, je crois php ferme automatiquement la connexion à la fin du code, non ?


                      OUI !
                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 mai 2006 à 10:09:05

                        Bon bien sur ce que j'ai raconté n'étais pas 100% sur ! Mais c'étais dans le principe (en gros quoi :-° ) !

                        Enfin bon, c'est toujours mieux de fermer mysql ^^ !
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          13 mai 2006 à 10:11:12

                          Ca libere de la mémoire, mais c'est léger ( puisque la connexion se ferme à la fin du script ) , a part si tu ouvre 300 connexion dans la même page...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 mai 2006 à 10:13:06

                            Pas besoin de 300 connexions ouvertent pour avoir une belle erreur.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Découvrez les grandes inventions et inventeurs qui font de notre monde ce qu'il est aujourd'hui :)
                              13 mai 2006 à 10:15:29

                              Citation : Arnaud

                              Ca libere de la mémoire, mais c'est léger ( puisque la connexion se ferme à la fin du script ) , a part si tu ouvre 300 connexion dans la même page...


                              Pour libérer de la mémoire on utilise mysql_free_result() en cours de script, pas un mysql_close()
                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 mai 2006 à 11:40:36

                                olé j'ai lancé un pur débat :p
                                si j'ai bien compris si les scripts sont petits et rapides ça ne sert a rien par contre si c'est des pages de 10 000 lignes il vaut mieu fermer ^^
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  13 mai 2006 à 11:41:19

                                  Fermer SQL ne sert à rien parce que SQL se ferme tout seul à la fin du code PHP (?>).
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    13 mai 2006 à 11:42:52

                                    Je pense que ça sert sur des scripts long à éviter de laisser la connexion ouverte trop longtemps, et donc d'éviter l'erreur classique: too many connexions...
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 mai 2006 à 11:48:59

                                      Citation : Ploob

                                      Fermer SQL ne sert à rien parce que SQL se ferme tout seul à la fin du code PHP (?>).



                                      Tu as bien dis la connection. Si tu a plusieurs connection ouverte, il faut que tu utilise mysql_close parce que sinon, vive les BUGS !


                                      Essaie d'enlever les mysql_close() dans le TP minichat et dans mettre qu'un, tu vas tout de suite comprendre pourquoi il est important ...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        13 mai 2006 à 11:51:57

                                        :p Bon en clair ça dépend des moments mais c'est mieu de le mettre...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          13 mai 2006 à 11:53:46

                                          Citation : NotPerfect

                                          Essaie d'enlever les mysql_close() dans le TP minichat et dans mettre qu'un, tu vas tout de suite comprendre pourquoi il est important ...


                                          Et si on demandait plutôt à php de faire ce pourquoi il est prévu ?
                                          Un chat en php... de l'hérésie ! :-°
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            13 mai 2006 à 11:54:01

                                            Citation : NotPerfect

                                            Citation : Ploob

                                            Fermer SQL ne sert à rien parce que SQL se ferme tout seul à la fin du code PHP (?>).



                                            Tu as bien dis la connection. Si tu a plusieurs connection ouverte, il faut que tu utilise mysql_close parce que sinon, vive les BUGS !



                                            Essaie d'enlever les mysql_close() dans le TP minichat et dans mettre qu'un, tu vas tout de suite comprendre pourquoi il est important ...



                                            Effectivement, c'est logique quand on n'y pense.
                                            Il n'est pas possible d'ouvrir 2 connexions ? Donc il faudras forcément fermer celle ouverte.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              13 mai 2006 à 12:06:03

                                              Il est possible d'ouvrir plusieurs connections à la fois, ça dépend comment est configuré le serveur.

                                              1 je fais des requetes SQL
                                              2 je fais un traitement sur une image

                                              Si pendant que je fais le traitement sur l'image (qui est assez long en général) je laissé la connection ouverte, eh bien c'est une connection qui est utilisée pour rien. Donc c'est une bonne idée de la fermer avant avant le traitement de l'image. Si ya pas grand chose d'autre après la phase sql, c'est inutile. Mais ça peut être une bonne idée de faire du code propre et de toujours fermer la connection SQL, ça prend qu'une ligne.

                                              Citation : doc php

                                              L'utilisation de mysql_close() n'est pas habituellement nécessaire, puisque les connexions non persistantes ouverts sont automatiquement fermées à la fin l'exécution du script. Voyez aussi libérer des ressources.

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                13 mai 2006 à 12:19:56

                                                En fait quand on fait ?> ça ferme pas MySQL ;)
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                fermer MySQL

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown