Autor | Zpráva | ||
---|---|---|---|
Neználek309 Profil * |
#1 · Zasláno: 16. 4. 2011, 23:40:38
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 * |
#2 · Zasláno: 16. 4. 2011, 23:44:43
Pozn: Toto je chybova hlaska: Call to a member function Connect() on a non-object in C:\xampp.
|
||
Tori Profil |
#3 · Zasláno: 17. 4. 2011, 07:19:48
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 |
||
Neználek309 Profil * |
#4 · Zasláno: 17. 4. 2011, 10:51:33
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. |
||
Časová prodleva: 13 let
|
0