2009-01-29 7 views

Répondre

5

Comme la documentation mysql_close() dit:

L'utilisation mysql_close() est généralement pas nécessaire , comme non persistantes liens sont automatiquement fermées à la fin de l'exécution du script. Voir également des ressources de libération.

Étant donné que les connexions sont gérées par PHP, il ne devrait pas y avoir de risque de sécurité.

0

Je ne peux pas dire si la page ferme la connexion (cela dépend de ce qui la gère) mais en général, c'est une bonne idée de la fermer lorsque vous avez terminé, car le laisser ouvert plus longtemps provoque un problème de famine pour les autres pages qui sont en cours de traitement et qui souhaitent se connecter à la même source de données.

+0

Surtout si l'application utilise la mise en commun des connexions. –

1

PHP est supposé pour être une architecture de "rien partagé". En d'autres termes, toutes les ressources sont allouées à chaque requête, puis nettoyées une fois la requête terminée. Ainsi, les ressources telles que la mémoire, les handles de fichiers, les sockets, les connexions à la base de données, etc. doivent être désallouées ou fermées.

Toutefois, vous pouvez utiliser persistent database connections qui ne sont pas fermés, mais qui sont réutilisés pour la prochaine demande. Si vous faites cela, il y a une implication de sécurité. Tout état de connexion est hérité par la prochaine requête PHP. Donc, si votre application utilise des variables définies par l'utilisateur de la base de données, ou des tables temporaires, ou même LAST_INSERT_ID(), la requête PHP suivante peut être capable de voir les données privilégiées qu'elle ne devrait pas voir. Si vous fermez la connexion à la base de données pour éviter cela, vous êtes en train de vaincre la valeur de la connexion persistante. Donc, vous pouvez aussi bien utiliser des connexions de base de données simples.

Questions connexes