# Zend_Application_Resource_Multidb

`Zend_Application_Resource_Multidb` wird verwendet um mehrere Datenbankverbindungen zu initialisieren. Man kann die gleichen Optionen wie beim Db Ressource Plugin verwenden. Trotzdem kann für das Spezifizieren einer Standardverbindung auch die 'default' Direktive verwendet werden.

## Mehrere Db Verbindungen konfigurieren

Anbei ist eine beispielhafte INI Konfiguration die verwendet werden kann um zwei Db Verbindungen zu initialisieren.

    [production]
    resources.multidb.db1.adapter = "pdo_mysql"
    resources.multidb.db1.host = "localhost"
    resources.multidb.db1.username = "webuser"
    resources.multidb.db1.password = "XXXX"
    resources.multidb.db1.dbname = "db1"

    resources.multidb.db2.adapter = "pdo_pgsql"
    resources.multidb.db2.host = "example.com"
    resources.multidb.db2.username = "dba"
    resources.multidb.db2.password = "notthatpublic"
    resources.multidb.db2.dbname = "db2"
    resources.multidb.db2.default = true

## Einen speziellen Datenbankadapter empfangen

Wenn dieses Ressource Plugin verwendet wird, will man normalerweise eine spezifische Datenbank erhalten. Das kann durch Verwendung von `getDb()` von der Ressource getan werden. Die Methode `getDb()` gibt eine Instanz einer Klasse zurück welche `Zend_Db_Adapter_Abstract` erweitert. Wenn man keine Standarddatendank gesetzt hat, wird eine Exception geworfen wenn diese Methode ohne die Spezifikation eines Parameters aufgerufen wird.

    $resource = $bootstrap->getPluginResource('multidb');
    $db1 = $resource->getDb('db1');
    $db2 = $resource->getDb('db2');
    $defaultDb = $resource->getDb();

## Den standardmäßigen Datenbankadapter empfangen

Zusätzlich kann der standardmäßige Datenbankadapter empfangen werden indem die Methode `getDefaultDb()` verwendet wird. Wenn man keinen standardmäßigen Adapter gesetzt hat, wird der erste konfigurierte Db Adapter zurückgegeben. Wenn man `FALSE` als ersten Parameter spezifiziert dann wird `NULL` zurückgegeben wenn kein standardmäßiger Datenbankadapter gesetzt wurde.

Anbei ist ein Beispiel welches annimmt dass das Multidb Ressource Plugin mit dem obigen INI Beispiel konfiguriert wurde:

    $resource = $bootstrap->getPluginResource('multidb');
    $db2 = $resource->getDefaultDb();

    // Selbe Konfiguration, aber ohne eine standardmäßige Db:
    $db1 = $resource->getDefaultDb();
    $null = $resource->getDefaultDb(false); // Null