1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| <?php
/**
* Gestion de la base de données
*/
class Db{
private $host=HOST;
private $name=DBNAME;
private $user=USER;
private $pass=PWD;
private $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,
$this->user,$this->pass,array(
1002 =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
$this->connexion->exec('SET NAMES utf8');
//PDO::MYSQL_ATTR_INIT_COMMAND
}catch (PDOException $e){
//echo 'Erreur : Impossible de se connecter à la BD !';die();
echo $e->getMessage();
}
}
/* requete */
public function query($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
}
public function tquery($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_ASSOC);
}
public function insert($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$nb=$req->execute($data);
return $nb;
}
public function uniqueEmail($email){
$req = $this->connexion->prepare('SELECT count(*) as nbre from users WHERE email=:email limit 1');
$req->execute(array('email'=>$email));
$reponse = $req->fetchAll(PDO::FETCH_ASSOC);
return $reponse[0]['nbre'];
}
public function exec($sql , $data=array()){
try{
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->rowCount(); // Retourne le nombre de lignes impactées par la reuqête
}catch(Exception $e){
echo 'Erreur : ' . $e->getMessage(); // en cas d'erreur dans la requête !
}
}
} |
Partager