2016-02-03 22:22:18 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace manager;
|
|
|
|
|
|
|
|
|
|
|
|
class DataBase{
|
|
|
|
|
2016-02-04 20:15:43 +00:00
|
|
|
/* ATTRIBUTS STATIQUES */
|
|
|
|
public static $config_path = '/f/json/database/conf';
|
|
|
|
private static $pdo;
|
|
|
|
private static $instance;
|
|
|
|
|
|
|
|
|
2016-02-03 22:22:18 +00:00
|
|
|
/* ATTRIBUTS */
|
|
|
|
private $host;
|
|
|
|
private $dbname;
|
|
|
|
private $username;
|
|
|
|
private $password;
|
|
|
|
|
|
|
|
|
|
|
|
public function __construct($host, $dbname, $username, $password){
|
|
|
|
$this->host = $host;
|
|
|
|
$this->dbname = $dbname;
|
|
|
|
$this->username = $username;
|
|
|
|
$this->password = $password;
|
|
|
|
|
|
|
|
// password: Qt358nUdyeTxLDM8
|
|
|
|
self::$pdo = new \PDO('mysql:host='.$host.';dbname='.$dbname, $username, $password);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* retourne une instance de la classe */
|
|
|
|
public static function getInstance(){
|
|
|
|
if( self::$instance == null ){
|
|
|
|
|
|
|
|
// chargement de la configuration du server SQL
|
2016-02-04 20:15:43 +00:00
|
|
|
$conf = json_decode( ResourceDispatcher::getResource(self::$config_path), true );
|
|
|
|
|
|
|
|
// creation de l'instance en fonction des parametres
|
2016-02-03 22:22:18 +00:00
|
|
|
self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return self::$instance;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* retourne la connection statique */
|
|
|
|
public static function getPDO(){
|
|
|
|
$instance = self::getInstance();
|
|
|
|
return self::$pdo;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************/
|
|
|
|
/* _____ ______ _ _ ______ _____ _ */
|
|
|
|
/* / ____| ____| \ | | ____| __ \ /\ | | */
|
|
|
|
/* | | __| |__ | \| | |__ | |__) | / \ | | */
|
|
|
|
/* | | |_ | __| | . ` | __| | _ / / /\ \ | | */
|
|
|
|
/* | |__| | |____| |\ | |____| | \ \ / ____ \| |____ */
|
|
|
|
/* \_____|______|_| \_|______|_| \_\/_/ \_\______| */
|
|
|
|
/* */
|
|
|
|
/*************************************************************/
|
|
|
|
|
|
|
|
/* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD
|
|
|
|
*
|
|
|
|
* @fetchData<Array> le résultat d'une $requeteSQL->fetchAll()
|
|
|
|
*
|
|
|
|
* @return newFetchData<Array> retourne le tableau donné en paramètre mais sans les valeurs à clés numériques
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public static function delNumeric($fetchData, $oneDimension=false){
|
|
|
|
|
|
|
|
/* [1] 2 dimensions
|
|
|
|
===============================================*/
|
|
|
|
if( !$oneDimension ){
|
|
|
|
|
|
|
|
// on supprime les doublons des entrées (indice numérique)
|
|
|
|
for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs
|
|
|
|
foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées
|
|
|
|
|
|
|
|
if( !mb_detect_encoding($val, 'UTF-8') )
|
|
|
|
$fetchData[$i][$col] = utf8_encode($val);
|
|
|
|
|
|
|
|
if( is_int($col) ) // si l'indice est un entier
|
|
|
|
unset( $fetchData[$i][$col] ); // on le supprime
|
|
|
|
}
|
|
|
|
|
|
|
|
/* [2] 1 dimensions
|
|
|
|
===============================================*/
|
|
|
|
}else{
|
|
|
|
|
|
|
|
// on supprime les doublons des entrées (indice numérique)
|
|
|
|
foreach($fetchData as $i=>$val){ // pour toutes les entrées
|
|
|
|
|
|
|
|
if( !mb_detect_encoding($val, 'UTF-8') )
|
|
|
|
$fetchData[$i] = utf8_encode($val);
|
|
|
|
|
|
|
|
if( is_int($i) ) // si l'indice est un entier
|
|
|
|
unset( $fetchData[$i] ); // on le supprime
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $fetchData;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|