Je rencontre un problème et je ne vois pas pourquoi cela ne fonctionne pas. C'est probablement simple.PHP pass Objet PDO à la classe
Je passe un objet PDO à une classe dans le même fichier et je suis en train d'utiliser cet objet PDO pour effectuer une requête, mais je reçois l'erreur
Fatal error: Call to a member function prepare() on null
suivante Voici mon code que je pense devraient travailler
try{
$pdo = new PDO('mysql:host=' . DBHOST . ';dbname=' . DBNAME, DBUSER, DBPASS);
}
catch (PDOexception $e) {
// get the error message
$message = 'Connection failed: ' . $e->getMessage();
}
$test= new Test($pdo);
var_dump($test->get_users());
class Test{
private $pdo;
public function __contruct($pdo) {
$this->pdo = $pdo;
}
public function get_users() {
$sql = "SELECT
user.*,
user_role.role AS role
FROM user
LEFT JOIN user_role ON
user.role_id = user_role.id;";
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
Toute idée de ce qui cause l'erreur
ouais Tobias a raison! Je voudrais également taper l'objet PDO dans le constructeur comme '__construct (PDO $ pdo)' pour une meilleure complétion du code et la sécurité du type – Stoffo
Plus vous le regardez, plus vous ne voyez d'erreurs;) –