Comment résoudre un problème de connection à la Base des données
jb_lives
Messages postés
3
Statut
Membre
-
Jblives -
Jblives -
Bonjour,
Je cherche à savoir comment résoudre ce problème de connexion à la base des données:
<?php
class Db {
private $host = HOST;
private $name = DBNAME;
private $user =USER;
private $pass= PWD;
public $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->dbname = $dbname;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,$this->user, $this->pass,array(
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
}catch(PDOException $e){
echo "Erreur : Impossible de se connecter à la base de données.";
die();
}
}
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);
$nbr = $req->execute($data);
return $nbr;
}
}
?>
Et le problème se présente sur cette ligne : PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in C:\Program Files\EasyPHP5.2.10\www\blog\classes\Db.php on line 24
Je cherche à savoir comment résoudre ce problème de connexion à la base des données:
<?php
class Db {
private $host = HOST;
private $name = DBNAME;
private $user =USER;
private $pass= PWD;
public $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->dbname = $dbname;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,$this->user, $this->pass,array(
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
}catch(PDOException $e){
echo "Erreur : Impossible de se connecter à la base de données.";
die();
}
}
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);
$nbr = $req->execute($data);
return $nbr;
}
}
?>
Et le problème se présente sur cette ligne : PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in C:\Program Files\EasyPHP5.2.10\www\blog\classes\Db.php on line 24
2 réponses
-
Bonjour
Le driver PDO de mysql est-il installé ?
Si tu essayes ce script chez Free par exemple, ils ne l'ont pas. -
Merci bcp, Le Père, tu dois avoir raison, lorsque j'ai désintallé Easyphp que j'utilisais et installé une version supérieur contenant déjà des drivers PDO, directement mon code s'est exécuté. Vraiment merci pour tes éclairecissements.