Voila alors j'ai un soucis quand je veux faire un select ça marche pas voiçi le code de model :
<?php
class Model{
static $connections = array();
public $conf = 'default';
public $table = false;
public $db;
public $primaryKey = 'id';
public $id;
public $errors = array();
public $form;
public $validate = array();
/**
* Permet d'initialiser les variable du Model
**/
public function __construct(){
// Nom de la table
if($this->table === false){
$this->table = strtolower(get_class($this)).'s';
}
// Connection à la base ou récupération de la précédente connection
$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'],
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')
);
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
Model::$connections$this->conf] = $pdo;
$this->db = $pdo;
}catch(PDOException $e){
if(Conf::$debug >= 1){
die($e->getMessage());
}else{
die('Impossible de se connecter à la base de donnée');
}
}
}
function hashagemdp($password,$pseudo){
$cnx = Model::$connections;
$tab = array('pseudo'=>$pseudo);
$sql= 'SELECT clef1,clef2 FROM users WHERE pseudo = :pseudo';
$req = $cnx->prepare($sql);
$req->execute($tab);
$count = $req->rowCount($req);
if($count === 1){
$req->setFetchMode(PDO::FETCH_ASSOC);
while($data = $req->fetch() ){
$gs1 = $data'clef1'];
$gs2 = $data'clef2'];
}
$req->closecursor();
if(!empty($gs1) && !empty($gs2)){
//encodage du mdp avec les grains de sel récupérer
}else{
return false;
}
}
}
Et voici mon erreur :
Fatal error: Call to a member function prepare() on a non-object in C:\Users\enfer14\Desktop\site web\Site_web\Game-Class MVC\core\Model.php on line 56
Je pense que le problème vient de $cnx qui ne peut pas etre Model::$connections
essaye de mettre $cnx = $this->db;
car la fonction prepare doit être execute avec une instantation de la connexion soit ici $pdo