Bonjour ou bonsoir à tous,
J'ai un problème au niveau de la 25ème minutes de la vidéo.
Voici l'erreur que j'ai Fatal error: Call to a member function prepare() on a non-object in /home/cercleescrimegarennois/www/core/Model.php on line 33
Voici le code de Model:
<?php
class Model{
static $connections = array();
public $conf = 'default';
public $table = false;
public $db;
public function __construct(){
$conf = Conf::$databases$this->conf];
if (isset(Model::$connections$this->conf])) {
$this->db = Model::$connections$this->conf];
return true;
}
try{
$pdo = new PDO('mysql:host='.$conf'host'].';dbname='.$conf'database'].';',$conf'login'],$conf'password']);
Model::$connections$this->conf] = $pdo;
}catch(PDOException $e){
if(Conf::$debug > 1){
die($e->getMessage());
}else{
die('Impossible de se connecter à la base de donnée');
}
}
if($this->table === false){
$this->table = strtolower(get_class($this)).'s';
}
}
public function find($req){
$sql = 'SELECT * FROM '.$this->table.' as '.get_class($this).'';
$pre = $this->db->prepare($sql);
$pre->execute();
return $pre->fetchAll(PDO::FETCH_OBJ);
}
}
Merci d'avance pour les réponses.
Ps : Les tutos sont top et super pratique.
Normal car $this->db n'est pas l'instance de pdo il faut que tu fasse $this->pdo = new PDO(); et ensuite tu aura plus qu'à faire $this->pdo->prepare
jai eu le meme prbleme, mais j avais oublier une ligne
<?php
$pdo = new PDO('mysql:host='.$conf'host'].';dbname='.$conf'database'].';',$conf'login'],$conf'password']);
Model::$connections$this->conf] = $pdo;
?>
par
<?php
$pdo = new PDO('mysql:host='.$conf'host'].';dbname='.$conf'database'].';',$conf'login'],$conf'password']);
Model::$connections$this->conf] = $pdo;
$this->db = $pdo;
?>
voila
j'avais le meme probleme j'ai ajouté $this->db = $pdo; comme il a fait henry et ça fonctionne merci beaucoup