Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Pomoc w skrypcie - połączenie multidb
Forum PHP.pl > Forum > PHP > Frameworki
csharp
Cześć,

zacząłem bawić się multidb w Zendzie i potrzebuje małej pomocy... mam osobny plik, w osobnym folderze - batch.
Plik ma za zadanie wstawić mi rekordy do bazy z pliku xml.

część kodu poniżej:

  1. $application = new Zend_Application(
  2. APPLICATION_ENV,
  3. APPLICATION_PATH . '/configs/application.ini'
  4. );
  5. $application->bootstrap('db');
  6. $Piosenka = new Application_Model_DbTable_Piosenka();
  7. $Piosenka->delete;
  8.  
  9. $xml = simplexml_load_file('../data/plik.xml');
  10. foreach ($xml->piosenka as $piosenka) {
  11. $dane = (array) $piosenka;
  12. try {
  13. $obj = $Piosenka->createRow($dane)->save();
  14. } catch (Zend_Db_Statment_Exception $e) {
  15. die($e->getMessage());
  16. }
  17.  


problem w tym, że ten skrypt wcześniej używał normalnego połączenia z bazą - gdy była jedna $application->bootstrap('db');, jak to teraz poprawić aby chodziło normalnie i abym w tym miejscu mógł wybierać połączenie? w akcjach kontrolera robię to tak:
  1. Zend_Db_Table_Abstract::setDefaultAdapter('db1');


plik bootstrap:

  1. protected function _initDatabase()
  2. {
  3. $this->bootstrap('multidb');
  4.  
  5. $db1 = $this->getResource('multidb')->getDb('db1');
  6. $db2 = $this->getResource('multidb')->getDb('db2');
  7.  
  8. Zend_Registry::set('db1', $db1);
  9. Zend_Registry::set('db2', $db2);
  10. }


no i w application.ini zainicjowane połaczenia.. wszystko działa, mam tylko problem z utworzeniem obiektu połączenia. będę wdzięczny za pomoc.
irmidjusz
Czy chodzi Ci o to, jak w tym pliku (nazwijmy go batch.php) służącym do wrzucania piosenek do bazy pobrać odpowiednie połączenie z bazą danych?

Skoro masz taki bootstrap.php jak przedstawiłeś, no to w tym batch.php napisz:

  1. $application = new Zend_Application(
  2. APPLICATION_ENV,
  3. APPLICATION_PATH . '/configs/application.ini'
  4. );
  5. $application->bootstrap('Database'); //bo w bootstrap.php jest _initDatabase
  6. $Piosenka = new Application_Model_DbTable_Piosenka('db1'); //albo db2 - zależnie co potrzebujesz


Przeczytaj komentarz konstruktora Zend_Db_Table_Abstract - jakie parametry możesz przekazać.
csharp
dzięki - o to mi chodziło dokładnie, daje plusik smile.gif
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.