Kann ich trotz bestehender Yii-Framework-Datenbankverbindung eine alternative Datenbankverbindung herstellen?

StackOverflow https://stackoverflow.com//questions/23013138

Frage

Wir führen Anwendungen im YII-Framework durch und arbeiten mit der in der Datei config.php definierten MySQL-Datenbankverbindung.Aus irgendeinem Grund möchten wir jedoch eine Verbindung zu einer anderen Server-MySQL-Datenbank herstellen.Kann ich es einfach so machen (ohne bestehende Verbindung zu verwenden):

public function init_db() 
{ 
    $db_handler = mysqli_connect('http://xxx.xxx.xxx.xxx', 'name', 'password', 'db_name');
    $db_handler->set_charset('utf8');

    // check connection 
    if (mysqli_connect_errno()) {
        throw new Exception ("Error connecting to DB : " . mysqli_connect_error()  );
    }              

    // set autocommit to off 
    mysqli_autocommit($db_handler, FALSE);

    mysqli_query ($db_handler, "set time_zone='Europe/Minsk'");

    return $db_handler;
}

Während ich es versuche, erhalte ich die Fehlermeldung:mysqli_connect(): php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known

auf dieser Linie $db_handler = mysqli_connect('http://xxx.xxx.xxx.xxx', 'name', 'password', 'db_name');

Gibt es eine Problemumgehung, einen Hack, um eine kurzfristige Verbindung herzustellen, um einige Daten von einem externen Server (nicht von Localhost) abzurufen?

AKTUALISIEREN

Ich bin gerade darauf gestoßen treten.Doch während ich es versuche:

$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true;

Das yii gibt CDbException aus:

CDbConnection failed to open the DB connection: could not find driver

War es hilfreich?

Lösung

Fügen Sie in Ihrer Konfigurationsdatei einfach weitere Verbindungseinstellungen hinzu:

    'db' => array(
        'connectionString' => 'mysql:host=127.0.0.1;dbname=test',
        ....
    ),
    'otherDb' => array(
        'connectionString' => 'mysql:host=127.0.0.1;dbname=test2',
        ....
    ),

Und verwenden Sie es wie Yii::app()->otherDb

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top