Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] Dwie bazy danych, Szybkie przełączanie miedzy bazami
webdice
post
Post #1


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Witam,

korzystam w modelu z Zend_Db_Table czy jest jakaś szybka możliwość przełączania miedzy bazami MySQL? Przykładowo w modelu w tej samej funkcji mam dwa zapytania, w jednym chce odpytać tabele A z bazy B, a w drugiem tabele C z bazy D.

Dodatkowo jak mniej więcej wyglądała konfiguracja?

Pozdrawiam,
Piotrek
Go to the top of the page
+Quote Post
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Zend_Application_Resource_Multidb
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




W wersji ZF z której ja korzystam nie zasobu multidb. Załóżmy jednak że wersję zmienię. Manual nie pokazuje czy można bezpośrednio w modelu zmieniać bazę, a nie ukrywam że głównie o to mi chodzi.

Przeglądnąłem źródło Zend_Db_Table_Abstract, widnieje tam funkcja setDefaultAdapter, nazwa jest myląca, ale wygląda na to że to własnie ona zmienia bazę. Nie mam na chwilę obecną możliwość sprawdzenia tego rozwiązania, więc prosiłbym o ewentualne sprostowanie.
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Dobrze znalazłeś:
  1. $model = new Application_Model_DbTable_Example();
  2. $model->setDefaultAdapter($db);
Zmienna $db to obiekt reprezentujący bazę, do której chcesz się połączyć. Możesz go wyciągać np z rejestru, a zapisywac w Bootstrapie.
Go to the top of the page
+Quote Post
webdice
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(batman @ 9.03.2010, 12:40:32 ) *
(...) Zmienna $db to obiekt reprezentujący bazę, do której chcesz się połączyć. Możesz go wyciągać np z rejestru, a zapisywac w Bootstrapie.


  1. /**
  2.  * (...) @param mixed $db Either an Adapter object, or a string naming a Registry key (...)
  3.  */
  4.  
  5. public static function setDefaultAdapter($db = null)
  6. {
  7. self::$_defaultDb = self::_setupAdapter($db);
  8. }


Więc nie koniecznie obiekt, wystarczy sama nazwa obiektu, co mi jest zdecydowanie na rękę.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 00:06