Autor Zpráva
Neználek309
Profil *
Dobry den,
mam nasledujici problem. Do indexove stranky includuju konfiguracni soubor s nastavenim databaze - je v nem i vytvoren objekt tridy, ktera obstarava volani mnou napsanych metod. Diky tomuto includu lze volat samozrejme i metody pro tento objekt v indexove strance. To je v poradku.
Situace se zmeni pri volani metody objektu v jinem souboru, ktery je taktez do indexove stranky includovan - pozn. je includovan az po konfiguracnim souboru. Zde se mi uz ale nedari volat metody, objekt tady neexistuje. Ale proc??

INDEXOVA STRANKA
+ require_once(config.php) - zde je konstruktorem vytvoren objekt tridy, metody jsou zde s uspechem volany, stejne i v indexu -> diky includu;
+ require_once(informace_levy.php) - zde uz objekt neexistuje, volani metody skonci chybou.

Kde je prosim chyba? Potrebuji preci udrzet platnost objektu v includovanych souborech (napr. SET NAMES pro DB).

Diky za pomoc.
Neználek309
Profil *
Pozn: Toto je chybova hlaska: Call to a member function Connect() on a non-object in C:\xampp.
Tori
Profil
Pokud v config.php vytváříte instanci té třídy, nemohlo by tu proměnnou něco přepsat na jinou hodnotu před použitím v informace...php? Co se vypíše, když v druhém includovaném souboru dáte těsně před chybový řádek
var_dump($objekt); // spravný název proměnné doplňte
Anebo není vytvoření instance a/nebo chybné volání metody uvnitř nějaké funkce?
Neználek309
Profil *
Ne, nikde jsem zatim nepouzival zadnou promenou, ktera by se tykala SQL; var_dump($sqlx); -> vrati NULL

V config souboru vytvorim instanci:
$sqlx = new CMySQLi($dbhost, $dbuser, $dbpsw, $dtb); 

kde konstruktor tridy CMySQLi vypada takto:
public function CMySQLi($DbHost, $DbUser, $DbPassword, $DbDatabase)
  {
   $this->DbHost = $DbHost;
   $this->DbUser = $DbUser;
   $this->DbPassword = $DbPassword;
   $this->DbDatabase = $DbDatabase;
  }


a volam metodu na objekt $sqlx v indexu:
$sqlx->Connect();

která vypadá nějako takto:
public function Connect()
  {  
   $this->DbConnection = new mysqli($this->DbHost, $this->DbUser, $this->DbPassword, $this->DbDatabase);
   if ($this->DbConnection->connect_errno)
   {...


To probehne bez problemu. Jakmile zavolam jakoukoliv metodu tykajici se tohoto objektu v informace_levy, tak ziskam vyse napsanou chybovou hlasku. Pritom konstanty z config souboru se mi bez problemu vypisou v informace_levy, takze problem s includem vylucuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0