Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQLI] Błąd przy metodzie fetch_array
-Gość-
post 4.11.2008, 02:29:12
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'];
    }


}
Go to the top of the page
+Quote Post
-Gość-
post 4.11.2008, 02:31:14
Post #2





Goście







Sprostowanie: PHP zwraca błąd dla LeftMenuTemplate, a nie klasy Prepare[...]. Błąd jest dokladnie tam gdzie wstawiłem komentarz w kodzie.
Go to the top of the page
+Quote Post
bregovic
post 4.11.2008, 02:50:09
Post #3





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Hmm... Co jest nie tak z tym zapytaniem? (podpowiedź: apostrofy...?)
  1. <?php
  2. $sqlQuery = "SELECT * FROM links_left_'".$this->LanguageVersion()."'";
  3. ?>


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
-Gość-
post 4.11.2008, 03:24:21
Post #4





Goście







Racja, szkolny błąd. Dziękuję za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:05