¿Puedo establecer una conexión de DB alternativa a pesar de la conexión DB existente de YII-Framework?

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

Pregunta

Hacemos la aplicación en YII Framework trabajando con MySQL DB Conexión definida en el archivo CONFIG.PHP. Sin embargo, por alguna razón queremos conectarnos a otro servidor MySQL DB.¿Puedo hacerlo de esta manera (sin usar la conexión existente):

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

Como lo intento, obtengo el error: mysqli_connect(): php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known

en esta línea $db_handler = mysqli_connect('http://xxx.xxx.xxx.xxx', 'name', 'password', 'db_name');

¿Hay alguna solución, hacke para obtener una conexión de corto tiempo para obtener algunos datos del servidor externo (no localhost)?

Actualización

Acabo de encontrarte en este breve . Sin embargo, como lo intento:

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

The YII CUESTIONS CDBEXception:

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

¿Fue útil?

Solución

En su archivo de configuración, agregue otra configuración de conexión:

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

y úselo como YII :: APP () -> OTRYDB

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top