Bonjour,
1. J'ai une classe de connexion et je souhaiterais savoir où il est judicieux de spécifier les paramètres d'une connexion. (Dans mon constructeur ou dans un fichier?)
2. Vaut-il mieux ouvrir sa connexion en tout début de script PHP et la fermer à la clôture du script?
Ou la gérer au niveau des classes, cad, dans la méthode de ma classe maClasse, ouvrir la connexion, exécuter la requête et récupérer le résultat dans une variable, fermer la connexion
partie en orande dans 2.?
Dans le 1er cas je monopolise une ressources mais ne fais qu'une connexion et dans l'autre je libère les ressources mais me connecte plusieurs fois (ralenti l'affichage)
1.
class Connexion{
/* Liste des propriétés de la classe */
var $host;
var $db;
var $user;
var $pwd;
var $db_link;
/* Constructeur de la classe */
function ConnexionMySQL(){
$this->host = "
host";
$this->db = "
db";
$this->user = "
user";
$this->pwd = "
pwd";
}
/* Méthodes de la classe */
function connect_db(){
$this->db_link = mysql_connect($this->host,$this->user,$this->pwd);
$selectDB = mysql_select_db($this->db,$this->db_link);
if ( ! $this->db_link )
die ("!!! Erreur : impossible de se connecter au serveur de base de données MySQL sur \"" . $this->host . "\" !!!");
if ( ! $selectDB )
die ("!!! Erreur : impossible de se connecter à la base \"" . $this->db . "\" !!!");
return ($this->db_link);
}
function disconnect_db(){
$result = mysql_close($this->db_link);
$this = null;
}
function execute($arg){
$result = mysql_query($arg,$this->db_link) or die ("!!! Erreur de syntaxe sur la requête suivante : !!!<br>" . $arg);
return ($result);
}
}
2.
class Acces {
var $id;
var $lib;
function Acces($arg){
$this->id=$arg;
}
function selectId(){
$cnx = new Connexion();
$cnx->connect_db();$query = "select * from TRUC ";
$query .= "where TRUC_ID = " . $this->id ;
$result = $cnx->execute($query);
$cnx->disconnect_db();if ( mysql_num_rows($result)) {
$row = mysql_fetch_object($result);
$this->lib=($row->TRUC_LIB);
$retval = true;
}
else
$retval = false;
return $retval;
}
}