![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam pewien problem.
mam klase polaczenia z baza sql.class.php, ktora inluduje w pliku glownym. Tworze obiekt:
i tu wszystko dziala poprawnie. Includuje plik user.class.php w ktorym mam metode w ktorej chce pobrac dane z bazy:
i tu pojawia sie blad: Fatal error: Call to a member function query() on a non-object in... Czy ktos wie co to moze oznaczac? pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 5 Dołączył: 29.03.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
zakładam że user.class.php to definicja klasy user, zatem fragment:
znajduje się wewnątrz konstruktora klasy (lub innej metody). no i nie widzi twojej zmiennej globalnej $sql; masz dwa wyjścia: 1. odwołać się do zmiennej globalnej (niezalecane), wystarczy że dopiszesz przed swoim kodem linijkę:
2. przekazać jawnie (zalecane) do konstruktora lub metody obiekt $sql:
powodzenia. Ten post edytował nevt 8.02.2008, 22:12:12 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Niepotrzebne utrudnienie moim zdaniem. Lepiej byłoby użyć np. Singletona, ale może wiesz lepiej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
jawne przekazywanie obiektu bazy ma znaczacą przewagę na odwoływaniem się do globali czy używaniem singletonów (co w sumie dla mnie jest tym samym)
umożliwia bowiem swobodne łączenie do różnych baz danych z różnych instancji tej samej klasy, umożliwia też tworzenie kilku równoległych połączeń do tej samej bazy (np. z innymi uprawnieniami). a zmiana wywołania
chyba nie jest jakimś niebotycznym skomplikowaniem programu... jak dla mnie wręcz przeciwnie, bo od razu widzę na jakim zbiorze danych operuje klasa user bez konieczności zaglądania do jej kodu... pozdrawiam wszystkich. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:32 |