próbuję stworzyć klasę do zarządzania bazą danych:
include './config.php';//polaczenie z baza class DaneUzytkownika { { $this->dane = $dane; else if ($dane instanceof DaneUzytkownika) $this->dane = $dane->pobierzJakoTablica(); } function __get($parametr) { return $this->dane[$parametr]; return ''; } // ustawia atrybut function __set($parametr, $wartosc) { $this->dane[$parametr] = $wartosc; } // zwraca dane w postaci listy par klucz='wartosc' // oddzielonych przecinkiem function pobierzListeDanych() { $list = ''; foreach($this->dane as $atrybut => $wartosc) return $list; } // zwraca listę atrybutow oddzielonych przecinkiem function pobierzListeAtrybutow() { } // zwraca listę wartości oddzielonych przecinkiem function pobierzListeWartosci() { foreach($this->dane as $wartosc) } // zwraca dane w postaci tablicy (zwraca przez wartosc) function pobierzJakoTablica() { return $this->data; } } class Uzytkownik extends DaneUzytkownika { private $dane_w_bazie; // konstruktor - tworzenie obiektu function __construct(&$dane, $baza) { parent::__construct(); if ($this->dane) $this->dane_w_bazie = new DaneUzytkownika($this->dane); } function zapisz() { mysql_query('UPDATE users SET '.$this->pobierzListeDanych().' WHERE '.$this->dane_w_bazie->pobierzListeDanych()); { $this->dane_w_bazie = $this->dane; return true; } return false; } function usun() { } } class BazaUzytkownikow { function pobierz(DaneUzytkownika $szukamy) { return false; } function dodaj(DaneUzytkownika $dane) { mysql_query('INSERT INTO users('.$dane->pobierzListeAtrybutow().') VALUES('.$dane->pobierzListeWartosci().')'); return new Uzytkownik($dane, $this); return false; } function zapisz($dane) { if ($dane instanceof Uzytkownik) $dane->zapisz(); else $this->dodaj($dane); } function usun(Uzytkownik $uzytkownik) { return $uzytkownik->usun(); } } $baza = new BazaUzytkownikow; $szukamy = new DaneUzytkownika; $szukamy->user_name= 'rr'; $uzytkownik = $baza->pobierz($szukamy); // zmieniam dane pobranego wcześniej użytkownika $uzytkownik->user_from = 'nowy gościu'; //próbuje zapisać zmiany $baza->zapisz($uzytkownik);
Otrzymuję komunikat :
Catchable fatal error: Argument 1 passed to BazaUzytkownikow::dodaj() must be an instance of DaneUzytkownika
Co robię źle ?