![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 250 Pomógł: 1 Dołączył: 6.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
próbuję zrozumieć co jest źle w poniższym kodzie, że pojawiaja się ostrzeżenia. Co robię źle?
Kod Warning: Missing argument 1 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18
Warning: Missing argument 2 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18 Warning: Missing argument 3 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18 Warning: Missing argument 4 for __construct::SQLConnection(), called in C:\WebServ\httpd\oop_mvc\index.php on line 12 and defined in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 18 PoĹÄ czenie nawiÄ zane! Fatal error: Call to a member function query() on a non-object in C:\WebServ\httpd\oop_mvc\controller\ConfigDatabase.class.php on line 28 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Co to za dziwna nazwa klasy? Nie przekazujesz parametrow do konstruktora ktore sobie zdefiniowales
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 250 Pomógł: 1 Dołączył: 6.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
No może rzeczywiście dziwna nazwa. Poprawiłem. Ale nie bardzo rozumiem jak mam przekazać parametry do konstruktora.
W ten sposób wyświetlam w pliku index.php:
Ten post edytował Kerth 10.03.2015, 00:11:25 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Siedze na mobile to napisze Ci slownie. Tam gdzie wywulujesz w 9 lini w nawiasie () piszesz te wszystkie wartosci co masz w deklaracje. Oczywiscie to co tam ma byc
![]() ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 250 Pomógł: 1 Dołączył: 6.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ok. Dzięki Ci za pomoc. Masz rację, jeszcze się gubię w OOP. Jednakże odnośnie kodu to nie wiem dlaczego się tak dzieje: gdy wpiszę błędne dane połączenia to mimo wszystko pojawia się komunikat o poprawnym połączeniu z bazą danych:
Wiesz może dlaczego tak się dzieje? Ten post edytował Kerth 10.03.2015, 00:21:35 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Widze wpisales tam zmienne a je wgl gdzies masz zadeklarowane? A co do pytania to dlatego ze kod sie wykonuje pokolei jak podasz bledne dane to pdo sie nie wysypie tylko zwroci null i php pojdzie dalej. Blok try jest ok ale zabraklo warunku ktory sprawdza czy sie polaczyles i dopiero w nim ten komunikat
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 250 Pomógł: 1 Dołączył: 6.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
W pliku: ConfigDatabase.class.php
deklaruję zmienne publiczne zaraz pod klasą. Ten plik później załączam do index.php:
Ostrzeżeń się pozbyłem. Mówisz o utworzeniu warunku sprawdzającego połączenie co dla mnie jest zaskoczeniem gdyż tego samego kodu połączenia używałem podczas programowania strukturalnego i nie było z nim problemów. O jakim warunku mówisz? Jakiej funkcji w nim użyć? Wiem, że się dopytuję zbyt dużo pewnie ale to dla mnie nowa sprawa. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
To nie tak
![]() To co tam deklarujesz narazie ma sie nijak do tego kodu ![]() Jak nie zapomne to naskrobie Ci przyklad popoludniu jak bd na kompie. Ale mimo wszystko bd musial zajrzec do kursu oop bo bez tego ani rusz tymbardziej ze widze to sa jakies zalazki modelu mvc ![]() Ten post edytował com 10.03.2015, 00:55:40 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 250 Pomógł: 1 Dołączył: 6.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Spróbowałem wykorzystać to $this i utworzyłem taki kod:
Teraz wszystko jest OK. Po wpisaniu złych danych otrzymuję komunikat o błędzie. Obyło się bez warunku sprawdzającego. Czy możesz mi powiedzieć czy dobrze to zrobiłem czy coś jest nie tak pod względem optymalności? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Jest ok ale sa dwa ale pierwsze teraz parametry w deklkaracji i wywolaniu metody sa nie potrzebne. Drugie taka klasa nic Ci nie daje bo itak musisz do niej zajrzec zeby cos zmienic w polaczeniu. Najlepsze to obecnie jest stosowanie DI czyli przekazujesz sam obiekt do konstruktora
![]() No to kolega Boshi dal Ci przyklad jak to w zasadzie powinno wygladac dla twojego przypadku kiedy chcesz robic to w taki sposob ![]() @down maly blad sie wkradl $this->pole zamiast $this->field :-D Ten post edytował com 10.03.2015, 02:02:54 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli już to konstruktor powinien łączyć się z bazą przy tworzeniu instancji klasy. Nie robi się etykiet publicznych-łamiesz jedną z podstawowych zasad OOP- hermetyzacje. Nie wiem po co też tworzysz funkcje przyjmująca parametry a przy tym deklarujesz pola publiczne z danymi.
Tak jak kolega com. napisał, do zmiennych wewnątrz klasy odwołujemy się po przez $this->zmienna. A po to jest to zrobione by wiedzieć która zmienna jest lokalną a która polem klasy. ufff
Edit: @up poprawione ![]() Ten post edytował Boshi 10.03.2015, 02:46:00 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 250 Pomógł: 1 Dołączył: 6.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Wam za pomoc. Podepnę się jeszcze pod ten temat, bo mam jeszcze problem, który niejako z niego wynika. Jak utworzyć jakieś proste(najprostsze) zapytanie do bazy danych? W OOP jest to jakoś ciężko mi zrozumieć. Mógłby mi ktoś pokazać jakiś przykładowy kod względem wcześniejszego łączenia z bazą danych?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dane są z mojej bazy
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Boshi niestety w tym wypadku nie tak, tylko:
Przykład Boshi zamyka te klase i w zasadzie staję się wtedy bezużyteczna, bo co jeśli zamiast chcieć wyświetlić coś w nowych liniach bd chciał zrobić to w tablece czy czymkolwiek. Takie podejście jak powyżej pokazuje tylko, że ktoś na sile chce upchnąć kod który tworzył strukturalnie do klasy i to jest złe, bardzo złe ![]() Ten post edytował com 11.03.2015, 14:57:17 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 19:22 |