我們在yii框架中使用config.php文件中定義的mysql db連接來處理應用程序。 由於某種原因,我們想連接到其他服務器的MySQL數據庫。我所能做的只是這種方式(不使用存在的連接):我可以建立一個替代數據庫連接,儘管現有的Yii框架數據庫連接
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;
}
正如我嘗試它,我得到的錯誤: mysqli_connect(): php_network_getaddresses: getaddrinfo failed: hostname nor servname provided, or not known
在這條線$db_handler = mysqli_connect('http://xxx.xxx.xxx.xxx', 'name', 'password', 'db_name');
有任何解決方法,黑客獲得短時間連接從外部服務器(不是本地主機)獲取一些數據?
UPDATE
我剛剛進入這個運行tread。 但當我嘗試:
$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true;
的警予的問題CDbException:
CDbConnection failed to open the DB connection: could not find driver
我應該禁用現有的連接wh建立新的? –
沒有,你可以使用他們兩個,但如果你想與其他連接到工作模式,你必須重新定義ActiveRecord的模型 – Alex
我照你sugested的方法getDbConnection卻無濟於事: CDbException: CDbConnection未能打開數據庫連接:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失敗:主機名或服務器名提供,或不知道。 可能是我的connectionString是錯誤的:''connectionString'=>'mysql:host = http://xxx.xx.xx.xxx; dbname = some_name','? –