Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 13.11.2015 Ostrzeżenie: (0%)
|
czesc, mam za zadanie napisac projekt w ktorym operuje na bazie za pomocą mysqli i w tym musze uzywac klas.
problem sie pojawia, gdy próbuje coś za pomocą metod z klas pobrać z bazy - w klasie nie jest widoczny mój obiekt mysqli.
gdzieś w kodzie: Kod class pracownicy { [...] public function grupa_pracownika() { $szukane_id_grupy=$this->id_grupy; $zapytanie="SELECT nazwa FROM grupy WHERE id=".$szukane_id_grupy; $query2=$polaczenie->query($zapytanie); if($query2)$pobierz=$query2->fetch_array(); if(!$query2){print'FATAL ERROR';exit();} return $pobierz[0]; } [...] } i tutaj już jest problem - brak obiektu $polaczenie szukałem na internecie, znalazłem coś o rejestrach, singleton. mówiąc krótko - nie rozumiem i nie wiem jak je zastosować. może mi ktoś pomóc, opisać to na przykładzie mojej klasy ? a może jest jakieś prostsze rozwiązanie? chcę jedynie uniknąć, aby w każdej jednej klasie od nowa definiować $host,$user,$password,$database czy moze da się jakoś zrobić, aby te zmienne były widziane przez klasę? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Przeczytaj o prostym wzorcu DependyInjection - to jest rozwiazanie Twojego problemu.
A jak chcesz zrobic na odwal, to zajrzyj do manuala do dzialu 'Zasieg zmiennych' i poczytaj jak uzywac GLOBAL |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 13.11.2015 Ostrzeżenie: (0%)
|
nie chcę zrobić na 'odwal', jednak trochę się spiesze, bo projekt fajnie śmigał bez mysqli (IMG:style_emoticons/default/oneeyedsmiley02.png)
a możecie mi powiedzieć, co jest złego w dawaniu do metody w klasie global $user,$pass,[...] ? i czy da się to global i $polaczenie=new mysqli umiescic jakoś w ciele klasy zamiast w konkretnych metodach? Ten post edytował padawan2000 13.11.2015, 18:14:26 |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
W global masz przekaz $polaczenie a nie user i pass ....
$polaczenie masz robic TYLKO raz w aplikacji i nigdzie wiecej masz juz $polaczenie nie tworzyc |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 13.11.2015 Ostrzeżenie: (0%)
|
ok, dzięki, działa (IMG:style_emoticons/default/businesssmiley.png)
czy przy okazji powiesz, dlaczego to rozwiązanie uważasz za "na odwal" ? |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Poniewaz GLOBALi nie uzywa sie juz od jakis 100 lat... ot czemu.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 00:12 |