Ale mam problem, stworzyłem formularz, z którego dane chcialbym zapisac w 2 tabelach.
Muszę więc przerobić obiekty DAO, bo przecież bez sensu żeby na potrzeby komunikacji z jedną tabelą każdy obiekt DAO tworzył nowe połączenie. Wymyśliłem więc sprytnie (lub też nie-sprytnie), żeby każdy obiekt DAO dziedziczył po jakimś podstawowym obiekcie, który łączyłby się z bazą danych. W momencie tworzenia daoA miałbym już połączenie z bazą, tylko teraz jak to technicznie zrealizować tworząc obiekt daoB?
Moja propozycja:
<?php class daoBasic { // polaczenie z baza var $connection; var $db; function daoBasic () { // tu w konstruktorze nastepowaloby polaczenie } } class daoA extends daoBasic { function daoA () { this->daoBasic(); } } class daoB extends daoBasic { function daoB () { this->daoBasic(); } } ?>
wykonałem taki test:
<?php $dao1 = new daoA(); $dao1->go(); $dao2 = new daoB(); $dao2->go(); go() { $statement = "select * from tabela2"; } ?>
gdzie funkcja go pobiera dane odpowiednio z tabela1 lub tabela2 i wyświetla ich zawartość. wynikiem jest:
Kod
Resource id #3
Array
(
[numer] => 1
[nazwa] => val1
)
Resource id #4
Array
(
[numer] => 2
[nazwa] => val2
)
Array
(
[numer] => 1
[nazwa] => val1
)
Resource id #4
Array
(
[numer] => 2
[nazwa] => val2
)
Czy w tym przypadku stworzyłem 2 połączenia? czy mogę stworzyć jedno połączenie na początku i z tego połączenia korzystać na stronie? Chciałem to po prostu zrobić dobrze i elegancko. Czy tak jest ok?