Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Dwie bazy danych
Forum PHP.pl > Forum > PHP > Frameworki
webdice
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
batman
Zend_Application_Resource_Multidb
webdice
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.
batman
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.
webdice
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ę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.