![]() |
![]() |
-Gość- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Mam pewien zbiór klas. Obiekty mają odpowiadać za obsługę kilku języków na stronie. Podział jest następujący: abstract PropertyTemplates (klasa abstrakcyjna - przygotowawcza, wspólna wszystkim klasom dziedziczącym po niej): Kod require_once ('class/MySQL.class.php'); require_once ('class/Language.class.php'); require_once ('class/Browser.class.php'); abstract class PrepareTemplates { protected $objSql; protected $objBrowser; protected $objLanguage; public function __construct() { $this->objSql = MySQL::connect(); $this->objBrowser = new Browser(); $this->objLanguage = new Language(); } public function LanguageVersion() { return $this->objLanguage->GetLanguage(); } public function UserBrowser() { return $this->objBrowser->GetBrowserName(); } } Po tej klasie dziedziczą klasy odpowiadające za pobranie odpowienich danych w zależności od wybranej wersji językowej np LeftMenuTemplate: Kod require_once ('class/PrepareTemplates.class.php'); require_once ('interfaces/Templates.interfaces.php'); class LeftMenuTemplate extends PrepareTemplates implements Templates { public $sql; public function __construct() { parent::__construct(); } public function Execute() { $sqlQuery = "SELECT * FROM links_left_'".$this->LanguageVersion()."'"; $query = $this->objSql->query($sqlQuery); $fetch = $query->fetch_array(MYSQLI_ASSOC); //tutaj miala byc petla while, ale sa problemy z pobraniem za pomoca fetch_array } Niestety PHP zwraca mi błąd dla linii którą zakomentowałem w klasie PrepareTemplates: Call to a member function fetch_array() on a non-object . Pewnie w zły sposób odwołuję się do metody fetch_array klasy mysqli, bo w innym miejscu bez dziedziczenia wszystko działa prawidłowo np. Kod require_once ('class/MySQL.class.php'); $sql = MySQL::connect(); $zapytanie = "SELECT * FROM sessions WHERE sessions_identifer = '0b5c8pkm9ol101gnb87b2jpth6'"; $query = $sql->query($zapytanie); $fetch = $query->fetch_array(MYSQLI_ASSOC); print_r($fetch); Gdzie robię więc błąd? Dodatkowo dla jasności dodaję też klasę MySQL: Kod class MySQL
{ public static $connect = null; private static $db_host = 'localhost'; private static $db_user = 'root'; private static $db_pass = 'AX1BY2CZ3'; private static $db_name = 'sucza_database'; public static function connect() { if (is_null(self::$connect)) { self::$connect = new mysqli (self::$db_host, self::$db_user, self::$db_pass, self::$db_name); self::$connect->set_charset("utf-8"); } return self::$connect; } public static function AddSQL() { $GLOBALS['sql_count']++; } public static function GetCountSQL() { return $GLOBALS['sql_count']; } } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 16:06 |