<?php ?>
Przez to cały czas dostaję błąd:
Fatal error: Call to a member function query() on a non-object in /radioprosfera/greets/includes/session.php on line 41
Co może być przyczyną?
<?php ?>
<?php //Tworzy nowy obiekt $db = new DBSql(DBHOST, DBUSER, DBPASS, DBNAME); ?>
<?php function sess_write($id, $data) { $db->query("REPLACE INTO ".TBL_SESSION."(session_id, data, modtime) VALUES('".$id."', '".$data."', null)"); //linia powodująca błąd return true; } ?>
<?php require_once('twoja_sciezka_do_DBSql'); class DB extends DBSql { private function __construct() { parent::__construct(DBHOST, DBUSER, DBPASS, DBNAME); } // Jeśli instancja istnieje zwraca mi zapisaną, która już ma połączenie z baza. Je
śli nie - tworzy nową i zapisuje ją w statycznej zmiennej $oInstance, następnie zwraca. D
zięki temu masz kontrole, że będzie jedno połączenie z bazą i że będziesz się móg
ł wszedzie odwołać do tego samego połączenia bez użycia globals ;-) { $sClassName = __CLASS__; // wywoluje funkcję __construct(), która tworzy połączenie z bazą self::$oInstance = new $sClassName; } return self::$oInstance; } // Prevent users to clone the instance public function __clone() { } } // Wywołuje statyczną metodę singleton(), ponieważ jest wywoływana 1 raz tworzy instancję klasy i ją zapisuje. $oDb = DB::singleton(); // Ponownie wywołuje singleton(), lecz teraz już nie tworzy nowej ihstancji klasy tylko zwraca już wcześnie
j zapisaną. $oDb2 = DB::singleton(); // teraz se możesz wywołać sesje // ... ?>
<?php function sess_write($id, $data) { $db = DB::singleton(); $db->query("REPLACE INTO ".TBL_SESSION."(session_id, data, modtime) VALUES('".$id."', '".$data."', null)"); return true; } ?>