![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 425 Pomógł: 0 Dołączył: 28.05.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio mało bywałem na forum, ponieważ min. tworzyłem [usunąłem linka] alek.
Ale nie w tym problem. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Stworzyłem klasę do obsługi bazy danych mysql.
I nie działa. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Cały kod wygląda tak.
Co jest źle? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
1. Po jakie licho wstawiłeś ten sam kod dwa razy? Nie można było wstawić kody klasy, a potem kodu, który z nij korzysta :?:
2. Pisząc "nie działa" napisz coś więcej. Nadworny Jasnowidz forum jest na urlopie i ludzie nie będą się domyślać. Jeżeli chcesz uzyskać odpowiedź, włóż w pytanie trocę więcej wysiłku. |
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Co to jest? $this -> $sql_host
Usun '$' sprzed nazw pol: $this ->sql_host a poza tym je zadeklaruj i wlacz wyswietlanie bledow error_reporting( E_ALL ); |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 9.09.2005 Skąd: Sopot, Polska Ostrzeżenie: (0%) ![]() ![]() |
Ja bym jeszcze zrobił tak:
Dzięki temu nie marnujesz czasu na łączenie się z bazą jeżeli akurat zdarzy się strona która z niej nie korzysta (lub na przykład skrypt się wysypie). Przy pisaniu skryptów pod www dobrze jest pamiętać, że nic nie robi się na zapas, bo wszystkie zapasy znikają razem z requestem. Po drugie dobrze jest nie robić za dużo w konstruktorze klasy. |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 425 Pomógł: 0 Dołączył: 28.05.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@mike_mech
1) Przepraszam za podwójne podanie kodu. Tak jakoś wyszło. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) 2) Napisałbym więcej na temat nie działania jakby więcej wiedział. Mam włączone błędy, mimo to pojawia się poprostu pusta strona. 3) Pozdrów ode mnie Nadwornego Jasnowidza. (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) @pies 1) Skrypt na 100% będzie potrzebował połączenie z bazą danych. @all Czy wogóle jest sens dawać konstruktor/destruktor? Może lepiej dać wszystko w postaci zwykłych funkcji? --- Trochę zmieniełem. Efekt ten sam.
Ten post edytował Kas 15.09.2005, 16:56:20 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
1) nie wybierasz bazy danych
2) zjadles nawias tak ma byc:
pozaym jak robisz: $this -> sql_host to zadeklaruj tą zmienną: private $sql_host; podobnie reszta |
|
|
![]() ![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 425 Pomógł: 0 Dołączył: 28.05.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Działa cudowanie.
Będę jeszcze ulepszał. Następne pytania postaram się dać w tym topicu, więc proszę na razie nie usuwać --- Wielkie podziękowania dla nospora! (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) --- Kiedy uruchamia się destruktor? Czy w momencie wykonania skryptu? Cytat Natomiast co do destruktora... tego w ogóle nie wywoływaliśmy, zarówno jawnie, jak i niejawnie, a mimo to napis "Wywołanie destruktora" się pojawił. Co jest więc grane? Ano po prostu php w momencie kończenia pracy skryptu niszczył po kolei wszystkie obiekty, dla każdego z nich uruchamiając destruktor (o ile takowy istniał). To oznacza, że skrypt z destruktorem będzie mi zawsze po wykonaniu się zrywał połączenie z bazą danych? Ten post edytował Kas 15.09.2005, 17:19:05 |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat To oznacza, że skrypt z destruktorem będzie mi zawsze po wykonaniu się zrywał połączenie z bazą danych? Tak. |
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 425 Pomógł: 0 Dołączył: 28.05.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W takim razie muszę stworzyć zwykłą funkcją zamiast destruktora aby nie zamykać połączenia?
|
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ale po co ci otwarte polaczenie po zakonczeniu skryptu, szczegolnie ze uzywasz mysql_connect (a nie *_pconnect).
Destruktor uruchamia sie przed zniszczeniem obiektu (ktory posiada ten destruktor). Obiekty sa niszczone automatycznie tuz przed zakonczeniem wykonywania skryptu (mozna to tez recznie robic). |
|
|
![]() ![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 425 Pomógł: 0 Dołączył: 28.05.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Czy jak mam skrypt, który pobiera dane z bazy to po pobraniu wszystkich danych, wykonaniu wszytskich poleceń oraz wsyświetleniu wszystkich danych połączenie będzie zrywane i przy wejściu w dowolną podstronę będzie tworzone ponownie?
--- Próbuję ulepszyć klasę. Co jeszcze należy zmienić?
Ten post edytował Kas 15.09.2005, 22:00:03 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 367 Pomógł: 2 Dołączył: 4.03.2003 Skąd: C:/Windows/Temp Ostrzeżenie: (0%) ![]() ![]() |
witam
dopiero zakupilem ksiazke o programowaniu oo w php5. I wlasnie skonczylem przerabiac rozdzial z polaczeniami (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . W zwiazku z tym mam pytanko (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) czy
ten konstruktor jest potrzebny? czy nie lepiej trzymac ustwaienia w jakims pliku conf.php ? przeciez po require bedziemy miali dostep do tych ustawien. A i tak w konstruktorze nie wywolywane jest polaczenie. Moim zdaniem konstruktor jest zbedny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale moze dlatego ze nie zaszedlem daleko w tej ksiazce oizdrawuan |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego nie zestawiać połączenia w konstruktorze ? Gdzieś zakazali (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
To czy dane połaczenia będą w osobnym pliku ( jak ja robię ), czy może w stałych a może na sztywno w konstruktorze to tylko kwestia upodobań programisty - nic innego. Przepraszam za lekki OT. Nie robić OT dot połączeń z SQL-em bo zamkne |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:42 |