Hunter Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 napisalem cos takiego: PLIK CLASS.PHP: (wycinek) class Travel { var $id; var $to_x; var $to_y; var $speed; var $type; var $gobliny; var $me; var $player_id; var $end_s; var $end_m; var $end_h; var $koniec_podrozy; function Travel($pID) { global $db; $statis = $db -> Execute("SELECT * FROM travel WHERE player_id=".$pID); $this -> id = $statis -> fields['id']; $this -> to_x = $statis -> fields['to_x']; $this -> to_y = $statis -> fields['to_y']; $this -> speed = $statis -> fields['speed']; $this -> type = $statis -> fields['type']; $this -> gobliny = $statis -> fields['gobliny']; $this -> me = $statis -> fields['me']; $this -> player_id = $statis -> fields['player_id']; $this -> end_s = $statis -> fields['end_s']; $this -> end_m = $statis -> fields['end_m']; $this -> end_h = $statis -> fields['end_h']; $this -> koniec_podrozy = $statis -> fields['koniec_podrozy']; $statis -> Close(); } function statis($statis) { $arrstatis = array(); foreach ($statis as $valuee) { $arrstatis[$valuee] = $this -> $valuee; } return $arrstatis; } } plik CLASS.PHP includuje do innego pliku i daje: $travel = new Travel($statis -> fields['id']); nie mam pojęcia co jest źle ale pojawia mi sie błąd: Fatal error: Call to a member function Close() on a non-object in /home/accounts_a/arsanael/public_html/eportal/class.php on line 269 jeszcze wspomne że 269 linijka to ta: $statis -> Close(); nie mam pojecia co jest źle ;/ prosze o pomoc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 A czym jest $statis? Co zwraca funkcja Execute(...) obiektu $db? Z błędu wynika, że $statis nie jest obiektem, więc nie posiada funkcji Close(). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 8 Lipca 2010 Autor Udostępnij Opublikowano 8 Lipca 2010 funkcja Execute obiektu $db wykonuje kod MYSQL umieszczony w nawiasach... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 Czyli zwraca tylko wynik tego zapytania? W takim razie $statis jest zwykłą tablicą a nie obiektem, więc nie możesz wywołać na nim metody Close(). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 8 Lipca 2010 Autor Udostępnij Opublikowano 8 Lipca 2010 no dobra, chciałem zrobić klase dzieki której bd mógł miec łatwy dostęp do danych z tabeli travel ale juz nie mam pomysłu jak to zrobić czy poprawic;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Lipca 2010 Administratorzy Udostępnij Opublikowano 8 Lipca 2010 czy ta klasa w lini 269 w ogóle jest dostępna? moze to jest w jakiejś metodzie, a klasa nie jest utworzona w tym obiekcie tylko poza nim, jak np. tutaj: $klasa = new Cos(); class Inna { public function foo(){ $klasa->bar(); //blad! } } Z oczywistych powodów, to nie działa. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 Zamień $statis->Close() na $db->Close(). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 Co się dzieje gdy pominie sie w tym przypadku Close? Wiem z własnego doświadczenia że kod dalej działa(chociaż nie powinno się tak robić). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SLy Opublikowano 8 Lipca 2010 Udostępnij Opublikowano 8 Lipca 2010 Połączenie z bazą danych nie zostanie zakończone. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Lipca 2010 Administratorzy Udostępnij Opublikowano 8 Lipca 2010 A to ciekawostka bo z tego co ja wiem, to skrypt sam na koniec zamyka pliki i bazę danych (garbage collector). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się