Stworzyłem klasę do obsługi połączenia z bazą danych, posługując się wzorcem singleton:
class database{ If (self::$db == null) { self::$db = new database; }else{ return self::$db; } } private function __construct() { self::$db = new PDO('mysql:host=localhost;dbname=bieganie', 'admin', 'admin'); } }
oraz klasę obsługującą zapytanie insert:
class trening{ public $db_conn; public $sql; public $stmt; public function insert() { $this->db_conn = database::getInstance(); $this->sql = 'INSERT INTO treningi (Data,CzasTreningu,Dystans,SrPuls) VALUES (:data,:czas,:dystans,:puls)'; $this->stmt = $this->db_conn->prepare($this->sql); ':data' => '2014-10-06', ':czas' => '50', ':dystans' => '5000', ':puls' => '120') ); } }
tworzenie obiektu oraz wywyołanie metody:
$bieganie = new trening; $bieganie -> insert();
Według tutoriali wszystko powinno działać, jednak wywala błąd:
Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\my\index.php on line 29
linia 29 w moim przypadku to:
$this->stmt = $this->db_conn->prepare($this->sql);
Uczę się i proszę o pomoc, lub wskazówki co jest nie tak.