Posso stabilire una connessione DB alternativa nonostante la connessione DB Yii-Framework esistente
-
21-12-2019 - |
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
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