par
JulieDev » 11 mai 2012, 11:49
Merci !
Je comprends mon erreur maintenant effectivement...
En fait la connexion est faite dans une première fonction connectToDB.
Elle est appelée par le constructeur.
Et c'est dans le getInstanceConnexion que ça ne va plus...
Mais sans instance de classe je ne vois plus comment réorganiser le tout j'avoue...
Il faudrait que je fusionne mes fonctions connectToDB à getInstanceConnexion ?
private function connectToDB($hostname, $username, $userpwd, $dbname, $createBase = FALSE, $configDir="") {
// Open a connection to a MySQL server.
$connection = mysql_connect($hostname, $username, $userpwd);
if ($connection == FALSE) {
displayErrorAndExit('Impossible de se connecter au serveur MySQL : ' . mysql_error());
}
// Select the MySQL database.
$db = mysql_select_db($dbname, $connection);
if ($db == FALSE AND $createBase == TRUE) {
$query = 'CREATE DATABASE ' . $dbname;
if (mysql_query($query, $connection) == FALSE) {
displayErrorAndExit('Impossible de créer la base de donnée : ' . mysql_error());
} else {
// create all database tables
createDbTables($configDir);
$db = mysql_select_db($dbname, $connection);
}
} elseif ($db == FALSE and $createBase == FALSE) {
displayErrorAndExit('Impossible de sélectionner la base de donn�es : ' . mysql_error());
}
return $connection;
}
// Constructeur de la classe Connexion
private function __construct($hostname, $username, $userpwd, $dbname, $createBase = FALSE, $configDir="") {
//Methodes permettant l'acces en ecriture des variables
$this->setHostname($hostname);
$this->setUsername($username);
$this->setUserpwd($userpwd);
$this->setDbname($dbname);
$this->setCreateBase($createBase);
$this->setConfigdir($configDir);
//Tentative de connexion à la base
try {
self::$_id = $this->connectToDB($this->_hostname, $this->_username, $this->_userpwd, $this->_dbname, $this->_createBase, $this->_configDir);
} catch (Exception $e) {
$e->getMessage();
}
}
// Création d'une instance de connexion
public static function getInstanceConnexion($hostname, $username, $userpwd, $dbname, $createBase = FALSE, $configDir="") {
if (!isset(self::$_instanceConnexion)) {
$c = __CLASS__;
self::$_instanceConnexion = new $c($hostname, $username, $userpwd, $dbname, $createBase, $configDir);
}
return self::$_instanceConnexion;
}
Merci !
Je comprends mon erreur maintenant effectivement...
En fait la connexion est faite dans une première fonction connectToDB.
Elle est appelée par le constructeur.
Et c'est dans le getInstanceConnexion que ça ne va plus...
Mais sans instance de classe je ne vois plus comment réorganiser le tout j'avoue...
Il faudrait que je fusionne mes fonctions connectToDB à getInstanceConnexion ?
[php]
private function connectToDB($hostname, $username, $userpwd, $dbname, $createBase = FALSE, $configDir="") {
// Open a connection to a MySQL server.
$connection = mysql_connect($hostname, $username, $userpwd);
if ($connection == FALSE) {
displayErrorAndExit('Impossible de se connecter au serveur MySQL : ' . mysql_error());
}
// Select the MySQL database.
$db = mysql_select_db($dbname, $connection);
if ($db == FALSE AND $createBase == TRUE) {
$query = 'CREATE DATABASE ' . $dbname;
if (mysql_query($query, $connection) == FALSE) {
displayErrorAndExit('Impossible de créer la base de donnée : ' . mysql_error());
} else {
// create all database tables
createDbTables($configDir);
$db = mysql_select_db($dbname, $connection);
}
} elseif ($db == FALSE and $createBase == FALSE) {
displayErrorAndExit('Impossible de sélectionner la base de donn�es : ' . mysql_error());
}
return $connection;
}
// Constructeur de la classe Connexion
private function __construct($hostname, $username, $userpwd, $dbname, $createBase = FALSE, $configDir="") {
//Methodes permettant l'acces en ecriture des variables
$this->setHostname($hostname);
$this->setUsername($username);
$this->setUserpwd($userpwd);
$this->setDbname($dbname);
$this->setCreateBase($createBase);
$this->setConfigdir($configDir);
//Tentative de connexion à la base
try {
self::$_id = $this->connectToDB($this->_hostname, $this->_username, $this->_userpwd, $this->_dbname, $this->_createBase, $this->_configDir);
} catch (Exception $e) {
$e->getMessage();
}
}
// Création d'une instance de connexion
public static function getInstanceConnexion($hostname, $username, $userpwd, $dbname, $createBase = FALSE, $configDir="") {
if (!isset(self::$_instanceConnexion)) {
$c = __CLASS__;
self::$_instanceConnexion = new $c($hostname, $username, $userpwd, $dbname, $createBase, $configDir);
}
return self::$_instanceConnexion;
}
[/php]