我正在运行一个 php gearman worker,它建立与数据库的连接。但是,问题是大约 8 小时后,mysql 连接断开,我的工作人员崩溃了。因此,我想断开连接并再次与数据库建立新连接。
我正在使用 CDbConnection 连接到 Yii 中的数据库,并期待“setActive(false)”为我解决问题。在下面,我正在“显式断开连接”并进行数据库查询....期待我的查询引发异常,但我很惊讶地看到“setActive”根本没有影响并且我的查询成功。
//if it fails then reconnect to the database
Yii::app()->db->setActive(false);
try {
$model = MyModel::model()->findByPk(10);
var_dump($model);
} catch (exception $e) {
echo "got exception -- ".$e->getMessage()."\n";
Yii::app()->db->setActive(false);
Yii::app()->db->setActive(true);
// I also tried Yii::app()->db->active = true/false
$model = MyModel::model()->findByPk(10);
var_dump($model);
}
如何使用 CdbConnection 断开并重新连接到我的数据库?