29-04-2010, 10:22 PM
je te passe la mienne comme exemple:
Code PHP :
<?php
class database {
private $_dbDns;
private $_dbUser;
private $_dbPassword;
private $_connexion;
private $_statement;
private static $_instance = null;
/**
* \brief Accesseur à l'objet connecteur de la base de données..
*
* \return _instance l'e nouveau serveur'instance unique de l'objet.
*/
public static function getInstance()
{
if( is_null(self::$_instance) ) {
self::$_instance = new self;
}
return self::$_instance;
}
private function __construct() {}
private function __clone() {}
/*
* Destructeur d'objet
*/
public function __destruct() {
}
/**
* \brief Modificateur du serveur de la base de données.
*
* \param dbDns le nouveau serveur.
*/
public function setDbDns($dbDns) {
$this->_dbDns = $dbDns;
}
/**
* \brief Modificateur de l'utilisateur de la base de données.
*
* \param dbUser le nouvel utilisateur.
*/
public function setDbUser($dbUser) {
$this->_dbUser = $dbUser;
}
/**
* \brief Modificateur du mot de passe de la base de données.
*
* \param dbPassword le nouveau mot de passe.
*/
public function setDbPassword($dbPassword) {
$this->_dbPassword = $dbPassword;
}
/**
* \brief Accesseur à la connexion de l'extérieur.
*
* \return la connexion à la base de données.
*/
public function getConnexion() {
return self::$_instance -> _connexion;
}
/**
* \brief Méthode préparant la requête envoyée.
*
* \param requete la requête à préparer.
*/
public function prepareRequete($requete) {
self::$_instance -> _statement = self::$_instance -> _connexion -> prepare($requete);
}
/**
* \brief Méthode exécutant la requête préparée par prepareRequete()
*
* \return booléen
*/
public function executeRequete() {
if (!self::$_instance -> _statement -> execute()) {
return false;
} else {
return true;
}
}
/**
* \brief Méthode retournant un tableau des résultats de la requête
*
* \return Le tableau de résultat
*/
public function getTableauResultat() {
return self::$_instance -> _statement -> fetchAll();
}
/**
* \brief Créé la connexion à la base de données
*/
public function connexion() {
self::$_instance -> _connexion = new PDO(self::$_instance -> _dbDns,self::$_instance -> _dbUser,self::$_instance -> _dbPassword);
self::$_instance -> _connexion -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
/**
* \brief Ferme la connexion à la base de données
*/
public function closeConnexion() {
self::$_instance -> _connexion = null;
}
et un exemple d'utilisation:
Code PHP :
<?php
$dns = 'mysql:dbname=monjeu;host=127.0.0.1';
$user = 'root';
$password = 'root';
$oPdo = database::getInstance(); // avec singleton
$oPdo -> setDbDns($dns);
$oPdo -> setDbUser($user);
$oPdo -> setDbPassword($password);
$oPdo -> connexion();
$req = "SELECT id FROM table";
$oPdo -> prepareRequete($req);
if (!$oPdo -> executeRequete()) {
echo "ERREUR";
} else {
$tab = $oPdo -> getTableauResultat();
print_r($tab,true);
}