Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]jedna baza, 2 x DAO
slwy
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 6.01.2009

Ostrzeżenie: (0%)
-----


Kazda tabela ma odpowiadający jej obiekt DAO odpowiedzialny za komunikację. W tym obiekcie tworzę nowe połączenie z bazą.
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:
  1. <?php
  2. class daoBasic {
  3.    // polaczenie z baza
  4.    var $connection;
  5.    var $db;
  6.  
  7.    function daoBasic () {
  8.    // tu w konstruktorze nastepowaloby polaczenie
  9.    }
  10. }
  11.  
  12. class daoA extends daoBasic {
  13.    function daoA () {
  14.        this->daoBasic();
  15.    }
  16. }
  17.  
  18. class daoB extends daoBasic {
  19.    function daoB () {
  20.          this->daoBasic();
  21.      }
  22. }
  23. ?>


wykonałem taki test:
  1. <?php
  2. $dao1 = new daoA();
  3. $dao1->go();
  4. $dao2 = new daoB();
  5. $dao2->go();
  6.  
  7. go() {
  8. $statement = "select * from tabela2";
  9. $query = mysql_query($statement)
  10. or die('ERROR: '.mysql_error());
  11. $row = mysql_fetch_assoc($query);
  12. print_r($query);
  13. print_r($row);
  14. }
  15. ?>

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
)

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?

Ten post edytował slwy 22.01.2009, 00:19:16
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 11:27