Klasa:
<?php class Db{ private $dbh; public function __construct(){ $host = 'localhost'; $dbname = ''; $user = ''; $pass = ''; try{ $this->dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ } } public function __destruct(){ $this->dbh = null; } } ?>
W innej klasie mam:
private $db; public function __constructor(Db $db){ $this->db = $db; } public function delArticle($id){ $del = $this->db->exec('DELETE FROM artykuly WHERE id = '.$this->id); }
W pliku głównym:
$db = new Db; $article = new Article($db);
Niestety otrzymuję błąd z informacą, że $db nie jest obiektem i nie mogę wywołać na jego rzecz metody exec()