2011-03-06 5 views
2

Je me demandais quelle est la meilleure pratique pour le développement PHP/MySQL.Ouvrir et fermer SQL pour chaque fonction, ou ouvrir SQL tout faire, puis fermer SQL?

Par exemple, je donne les résultats suivants:

  • connect.php
  • close.php

En connect.php, il utilise require_once('classes/database.php') et utilise $database = new database(); appelle alors $database->connect();

Dois-je require_once ceux-ci en dire un header.php et un footer.php et avoir une connexion globale (chaque page Web principale comprend ceux-ci), ou plutôt, ouvrez-le et fermez-le pour quand j'en ai besoin. Par exemple, j'ai un fichier functions.php qui a des fonctions qui dois-je faire:

public function test() { 
    $db = new database(); 
    // db setup here 
    $db->connect(); 
    // do stuff here 
    $db->disconnect(); 
} 

ou

public function test() { 
    // stuff here 
} 

Merci!

Répondre

3

La connexion à une base de données est généralement un processus assez coûteux, qui prend du temps. Évitez de vous connecter plusieurs fois en réponse à une seule demande, dans la mesure du possible.

0

L'ouverture d'une connexion à la base de données prend généralement du temps, je vous conseille donc de l'ouvrir une fois pour toutes au début du script.

Il est également bon de savoir qu'à la fin du script, PHP ferme automatiquement la connexion ouverte, donc il n'est normalement pas nécessaire de fermer explicitement une connexion à une base de données.

Afin d'avoir le code plus robuste, je vais faire quelque chose comme ceci:

class Database { 
    var $connection = null; 

    public function connect() { 
     if($this->connection == null) { 
      // setup the connection here 
     } 
    } 
} 

De cette façon, chaque fois que vous avez besoin d'une connexion de base de données, vous pouvez appeler $db->connect() mais le travail sera réellement fait seulement au premier appel. Cela garantira que même après un refactoring de code, disons dans votre fichier d'en-tête, la base de données sera connectée en cas de besoin.