J'aimerais savoir comment se gère l'ouverture et la fermeture de la connexion à une base de données mysql.
Je m'explique, j'utilise une classe pour gérer mes accès. J'ai deux fichiers (la source complète est ici, tout en bas de la page). L'un est "connexion.php" (je n'écris pas mes données ici mais j'ai inscrit les valeurs approprées, bien sûr):
Code : Tout sélectionner
<?php
$mysql_adresse = "localhost";
$mysql_login = "root";
$mysql_pass = "";
$mysql_base = "votre_base";
?>Code : Tout sélectionner
function connexion() {
// méthode privée
// connexion à la base de données
if ($this->base) {
$obj_db = mysql_connect($this->adr, $this->login, $this->passe);
if (!$obj_db) {
echo '<div style="' . STYLE_MYSQL . '">Erreur de connexion à la base de données <b>' . $this->base . '</b></div>';
return false;
}
if (!mysql_select_db($this->base, $obj_db)) {
echo '<div style="' . STYLE_MYSQL . '">Erreur : ' . mysql_error( ) . '</div>';
mysql_close($obj_db);
return false;
}
return true;
}
else {
echo '<div style="' . STYLE_MYSQL . '">Erreur : aucune information de connexion - base de données indisponible</div>';
return false;
}
}
function close() {
// méthode publique
mysql_close();
}
[.....................]
function select($chaine_sql, $methode, $args=null, $connexion=true) {
if ($connexion) {
if (!$this->connexion()) return null;
}
........etc.Tandis que j'y suis, j'ai également une autre classe qui fait appel à cette classe, c'est à dire que je l'importe. Je l'ai appelée ClasseGererBD.
De ma page php, j'instancie cette classe, ex: $bd = new ClasseGererBD.
Cela fonctionne, mais je ne peux qu'appeler une seule des méthodes de ma classe ClasseMysql. La seconde fois, j'obtiens:
Code : Tout sélectionner
Notice: Undefined variable: mysql_adresse in c:\...\ClasseMysql.txt on line 32
Notice: Undefined variable: mysql_login in c:\...\ClasseMysql.txt on line 33
Notice: Undefined variable: mysql_pass in c:\...\ClasseMysql.txt on line 34
Notice: Undefined variable: mysql_base in c:\...\ClasseMysql.txt on line 35
Erreur : aucune information de connexion - base de données indisponible