![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Do obsługi MySQL wykorzystuje bibliotekę AdoDB. I chcę jedną z jej funkcji wrzucić do swojej funkcji:
$nr=1; function addEvent($team,$plr,$event,$ok=1){ $db->Execute('INSERT INTO events (meczId,nr,team,plr,event,ok) VALUES('.$meczId.','.$nr.','.$team.','.$db->Quote($plr).','.$db->Quote($event).','.$ok.')'); $nr++; } Ale wtedy wywala mi błąd: Fatal error: Call to a member function Execute() on a non-object in /opt/lampp/htdocs/siatka/sites/play.php on line 11 Jak wrzuce na początek tej funkcji linijke: global $db; to niby błędów strona nie wywala, ale w bazie nic się nie dzieje :/ To $db to klasa czy coś takiego? Deklarowana jest na początku dokumentu, i tam łączy się z bazą. Wiem że można po prostu przekazywać zmienną $db w parametrze funkcji, ale może obejdzie się bez tego i jest jakiś prostszy sposób? Ten post edytował Apocalyptiq 18.10.2008, 16:08:17 -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#2
|
|
![]() Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Przekazuj obiekt db jako parametr funkcji, ewentualnie skorzystaj z global" title="Zobacz w manualu PHP" target="_manual (ale nie jest to zalecane).
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Właśnie global jakoś mi nie chciało działać - może działa tylko przy zmiennych, a nie obiektach. Więc będę to $db przerzucał w parametrze, dzięki webdice za pomoc
![]() Jednak ten błąd nie leżał po stronie $db - nie przekazałem do funkcji jeszcze dwóch innych zmiennych, które były globalne ![]() -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie global jakoś mi nie chciało działać - może działa tylko przy zmiennych, a nie obiektach. A co za różnica? Obiekty również są zmiennymi. Źle to zastosowałeś skoro nie działało.Więc będę to $db przerzucał w parametrze, dzięki webdice za pomoc Rozwiążanie też niezłe. Wszystko byłoby lepsze od wykorzystania zmiennych globalnych.![]() Do przechowywania połączenia z bazą danych skorzystaj z czegoś takiego jak Rejestr. Znajdziesz w sieci sporo informacji o wzorcu programowania Rejestr (ang. Register Pattern). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:55 |