Posso stabilire una connessione DB alternativa nonostante la connessione DB Yii-Framework esistente

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

Domanda

Facciamo applicazione in Yii Framework che lavora con la connessione MySQL DB definita nel file Config.php. Eppure per qualche motivo vogliamo connetterci ad altri server MySQL DB.Posso farlo solo in questo modo (senza usare connessione esistente):

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;
}
.

Come lo provo, ottengo l'errore: mysqli_connect(): php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known

su questa riga $db_handler = mysqli_connect('http://xxx.xxx.xxx.xxx', 'name', 'password', 'db_name');

C'è qualche soluzione alternativa, hack per ottenere una connessione breve per recuperare alcuni dati da server esterno (non localhost)?

Aggiornamento

Sono appena entrato in questo battistrada . Eppure mentre provo:

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

I problemi YII CDBexception:

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

È stato utile?

Soluzione

Nel tuo file di configurazione aggiungi altre impostazioni di connessione:

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

e usalo come yii :: app () -> Otherdb

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top