
Postanowiłem więc uczyć się tego na konkretnym przykładzie. Pojawił się problem przy wykonywaniu zapytań do bazy. W efekcie chcę osiągnąć coś takiego, że tworzę obiekt bazy na samym początku pliku, a później we wszystkich klasach się do niego odwoływać żeby w każdej metodzie nie wywoływać ciągle tego obiektu. Przejrzałem trochę zasobów sieci, ale jak na złość nie potrafię tego jednego problemu wyłapać. Jak na razie osiągnąłem tylko tyle, że jak odwołam się do metody w indexie to dane zostaną prawidłowo wyświetlone. Gdy chcę pobrać dane w innej klasie - session, otrzymuję fatala, że funkcja query w metodzie info nie jest obiektem. Na tym przykładzie próbuję z mysqli, ale z PDO było to samo.
index.php:
<?php $db = new mysqli('localhost','root','x','forum'); require('classes.php'); $user = new user($db); $session = new session; ?>
classes.php:
<?php class user{ private $db; function __construct(&$db){ $this->db=&$db; } function info(){ $res = $this->db->query('SELECT * FROM users'); while ($row = $res->fetch_object()) { return $row; } } } class session{ function show(){ $user = new user($db); return $user->info(); } } ?>
Za pomoc będę wdzięczny, a i uwagami nie pogardzę
