Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ouverture et fermerture mysql en PHP

8 réponses
Avatar
Xavier Bertschy
Bonjour.
Travaillant avec PHP et MySQL, je me pose des question sur l'ouverture et la
fermeture de connexion MySQL.

Si j'emploie des include() ca se passe comment pour que mon code php soit le
mieux optimisé ?

C'est mieux de faire ainsi:

head.php
------------------------------
OUVERTURE DE LA CONNEXION


main.php / menu.php / modules.php
------------------------------
ON TAPE LE CODE PHP / HTML DU MAIN.PHP


foot.php
------------------------------
FERMETURE DE LA CONNEXION



ou alors de faire:


head.php
------------------------------
ON TAPE LE CODE PHP / HTML DU HEAD.PHP



main.php / menu.php / modules.php
------------------------------
OUVERTURE DE LA CONNEXION

ON TAPE LE CODE PHP / HTML DU MAIN.PHP

FERMETURE DE LA CONNEXION

foot.php
------------------------------
ON TAPE LE CODE PHP / HTML DU FOOT.PHP


La différence n'est pas très grande.... mais je me demandais si c t mieux de
répéter ds chaque "script" l'ouverture et la fermture... ou alors de le
faire sur les fichiers head et foot uniquement ?

Vos expériences en disent koi?

Xavier
www.xb83.ch

8 réponses

Avatar
P'tit Marcel
Xavier Bertschy écrivit:

Travaillant avec PHP et MySQL, je me pose des question sur l'ouverture
et la fermeture de connexion MySQL.

Si j'emploie des include() ca se passe comment pour que mon code php
soit le mieux optimisé ?


la question n'est pas l'optimisation du temps de traitement (ça sera
kifkif) que la maintenabilité. En codant à un seul endroit l'ouverture de
la connexion, il sera plus facile ultérieurement de changer le nom du
serveur ou le login/mot de passe ou le nom de la base.


--
P'tit Marcel

Avatar
Thibaut Allender
"Xavier Bertschy" wrote in message
news:3f82f90e$0$13271$
La différence n'est pas très grande.... mais je me demandais si c t mieux
de

répéter ds chaque "script" l'ouverture et la fermture... ou alors de le
faire sur les fichiers head et foot uniquement ?


si tu as besoin de la connexion dans chaque (ou une grande majorité de)
page, alors c'est mieux de le faire dans le header
pour la fermeture, on s'en tape, ca se ferme tout seul a la fin du script...

a+

--
+ thibaut allender // web design + php dev + digital photo
+ http://www.capsule.org

Avatar
Jean-Luc L'Hotellier
"Xavier Bertschy" a écrit dans le message de
news:3f82f90e$0$13271$

Si j'emploie des include() ca se passe comment pour que mon code php soit
le

mieux optimisé ?


L'include en php c'est comme si tu en tapais le contenu dans ton script.

--
Jean-Luc L'Hôtellier
http://www.ancolie-photo.com

Avatar
Jedi121
Xavier Bertschy wrote:
Vos expériences en disent koi?


En PHP il n'est plus nécessaire de fermer ta connexion à MySQL, à la fin du
script elle est fermée. Donc je ne m'en soucierai pas.
Si tu veux tout de même l'ajouter je le mettrai dans le main.php pour avoir
l'ouverture et la fermeture au même endroit, c'est plus lisible et moins
"risqué" (même s'il n'y a pas de danger). Au pire tu risques un jour de fermer
un connexion MySQL qui n'existe pas.

Avatar
M.D
Dans l'article <3f82f90e$0$13271$,
disait...
Bonjour.
Travaillant avec PHP et MySQL, je me pose des question sur l'ouverture et la
fermeture de connexion MySQL.

Si j'emploie des include() ca se passe comment pour que mon code php soit le
mieux optimisé ?



1. Si tu utilises des connexions non-persistantes, ce qui est
conseillé, il est inutile de se préoccuper de la fermeture: elle se
fait automatiquement

2. Il n'est peut être pas utile d'ouvrir la base à chaque page, il est
plus simple et plus rapide d'utiliser les sessions, si c'est juste pour
transferer des infos de page en page.

3. Il vaudrait mieux que l'ouverture de la base soit seule dans un
fichier, et que tu ne l'appelle que si tu en as besoin

4. il est préférable d'utiliser "require" plutôt que "include" dans ce
cas là

5. Utiliser include va aussi vite que de faire une seule page, ça
permet simplement de faciliter les mises à jour et la lisibilité du
code source.

--
Marc

Avatar
John Gallet
Bonjour,

Travaillant avec PHP et MySQL, je me pose des question sur l'ouverture et la
fermeture de connexion MySQL.


La seule situation qu'il faut absolument éviter est celle qui consiste à
systématiquement ouvrir la connexion, exécuter une requête et refermer
la connexion immédiatement après alors que le même script va faire
d'autres requêtes par la suite.

L'appel explicite de la fonction mysql_close() est en théorie superflu
mais il n'est pas mauvais de le faire (sauf évidemment en utilisant des
connexion dites persistantes) parce que :

0) ça prend UNE ligne de code.
1) ça marque bien le fait qu'on aura plus besoin d'aller tripatouiller
le sgbd plus loin dans le script.
2) ça libère les ressources au plus tôt, des deux côtés
3) s'il y a un bug quelque part la connexion est effectivement fermée,
on en est sûr.

Si j'emploie des include() ca se passe comment pour que mon code php soit le
mieux optimisé ?
Rien à voir, comme une autre réponse te le faisait remarquer, faire

include('toto.truc') c'est exactement la même chose que de faire un
copié collé du contenu de toto.truc à cet endroit là.

La différence n'est pas très grande.... mais je me demandais si c t mieux de
répéter ds chaque "script" l'ouverture et la fermture... ou alors de le
faire sur les fichiers head et foot uniquement ?
Si tu vas systématiquement avoir au moins une requête à faire sur le

sgbd pour toutes les pages, autant le faire une bonne fois pour toutes
dans un seul fichier. Sinon, la gestion locale se défend largement.

a++
JG

Avatar
John Gallet
1. Si tu utilises des connexions non-persistantes, ce qui est
conseillé,


Non. C'est comme dire qu'un index améliore touours les perfs des
requêtes.

UNE BONNE FOIS POUR TOUTES : CA DEPEND DE L'APPLICATION.

JG

Avatar
Elie `woe` BLETON
Xavier Bertschy wrote:
Bonjour.
Travaillant avec PHP et MySQL, je me pose des question sur l'ouverture et la
fermeture de connexion MySQL.


Bon, tout a été dit ou presque. Reste quand meme quelques petites
explications additionelles sur pourquoi fermer une connexion mysql (qui
n'ont pas été données jusque la)

- Fermer la connexion, c'est liberer des resources. Ca veut dire, entre
autres, que tu ne pourris pas le serveur MySQL, et que ton script, si il
tourne 600 fois par minutes, il va pas trop pourir la machine qui
l'héberge. (moui bon, franchement, qui fait du 600 pages par minutes hein ?)

- Peut être auras tu besoin de jongler entre différentes connections
(différents serveurs, ou différents comptes par exemple). Si tu ne
souhaites pas t'embarrasser des resources MySQL a gerer partout (ca
fleurit comme des champignons quand on fait pas gaffe !), fermes et
ouvres les différentes connexions les unes après les autres.

- En dernier lieu, si tu utilises une classe PHP5, inutile d'appeller
mysql_close() dans le destructeur __destruct(). Il semblerait en effet
(dans les dernières bêtas, mais la doc.. existe pas a ce sujet) que les
connexions MySQL soient bouclées avant la destruction des objets. (d'oh ?!)

voilu,

woe