Bonjour à tous ,
j'ai un petit soucis suite au tuto " gestion d'un espace menbre ( refactoring)
je m'inscris : la base de donnée ce remplie , je reçois l'email et la validation est OK .
Mais si je veux modifier le mot de passe j'obtiens cette erreur :
Fatal error: Uncaught Error: Call to a member function prepare() on null in /homepages/34/d781897486/htdocs/account.php:12 Stack trace: #0 {main} thrown in /homepages/34/d781897486/htdocs/account.php on line 12
voici la ligne 12 de la page account.php :
$pdo->prepare('UPDATE users SET password = ? WHERE id = ?')->execute([$password, $user_id]);
Si je ne me trompe pas cette ligne correspond à la page database.php :
<?php
class Database{
private $pdo;
public function __construct($login, $password, $database_name, $host = 'db******.hosting-data.io'){
$this->pdo = new PDO("mysql:dbname=$database_name;host=$host", $login, $password);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
}
/**
* @param $query
* @param bool|array $params
* @return PDOStatement
*/
public function query($query, $params = false){
if($params){
$req = $this->pdo->prepare($query);
$req->execute($params);
}else{
$req = $this->pdo->query($query);
}
return $req;
}
public function lastInsertId(){
return $this->pdo->lastInsertId();
}
}
j'ai modifié le fichier db.php pour inlure mes identifiants
je ne comprend pas pourquoi je peux inserer des données dans la bdd mais pas les modifiées , si vous avez une idée ??
je code aussi bien en php , qu'un parpaing qui nage dans une piscine ...
UN GRAND MERCI :)