j'ai une fatal error sur mon espace menbre

Par vinxent gillou, il y a 7 ans


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 :)

1 réponse

Carouge10, il y a 7 ans

Bonjour,
D'où proviens $pdo ?