如何重新连接到 Yii1 中的默认数据库?
How to re-connect to default db in Yii1?
在 config/main.php 中有一个带有参数等的“db”组件,所以在我的应用程序中它被访问为 Yii::app()->db。到目前为止,这是非常标准的。现在,问题 - 我如何在 Yii1 中重新初始化它?
问题是我正在处理一个 CRON 脚本,在该脚本中我使用 ftp 将文件传输到另一台服务器上。在某些时候,它需要很多时间。之后,脚本尝试执行一些数据库操作并收到错误消息,指出数据库连接已消失。由于这个 ->db 属性 是只读的,我不能只打开一个新的并重新分配它。
错误:
异常 'CDbException',消息为“CDbCommand 无法执行 SQL 语句:SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已消失。
到目前为止,我的解决方法是当我需要做一些事情时 sql,我只是使用创建一个新连接。但是应该有一个正确的方法吧?
同样,问题是,如何使用配置文件中指定的参数重新打开默认数据库连接?
因为我需要在 urgent.Please 帮助我。
在 Yii1 中使用这行代码。
Yii::app()->db->setActive(false); Yii::app()->db->setActive(true);正常工作。
在 config/main.php 中有一个带有参数等的“db”组件,所以在我的应用程序中它被访问为 Yii::app()->db。到目前为止,这是非常标准的。现在,问题 - 我如何在 Yii1 中重新初始化它?
问题是我正在处理一个 CRON 脚本,在该脚本中我使用 ftp 将文件传输到另一台服务器上。在某些时候,它需要很多时间。之后,脚本尝试执行一些数据库操作并收到错误消息,指出数据库连接已消失。由于这个 ->db 属性 是只读的,我不能只打开一个新的并重新分配它。
错误: 异常 'CDbException',消息为“CDbCommand 无法执行 SQL 语句:SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已消失。
到目前为止,我的解决方法是当我需要做一些事情时 sql,我只是使用创建一个新连接。但是应该有一个正确的方法吧?
同样,问题是,如何使用配置文件中指定的参数重新打开默认数据库连接?
因为我需要在 urgent.Please 帮助我。
在 Yii1 中使用这行代码。 Yii::app()->db->setActive(false); Yii::app()->db->setActive(true);正常工作。