PHP PDO Postgres数据库启动/停止问题

时间:2014-07-23 13:07:58

标签: php postgresql yii pdo

我在PDPPDO的支持库中使用Yii和postgres数据库。

我在PDO库中面临着与Postgres数据库联系的问题。

我使用一些后台进程来工作,所以最终它将是24X7继续任务。现在,根据用例,我的Postgres可能会以某种方式关闭/崩溃。那个时候,pg_prepare()函数让我返回FALSE ..这就是Corrent !!!

现在,几分钟之后,如果Postgres开始了。所以最终pg_prepare()应该给我资源ID。但它仍然给我错误!

我相信由于重新启动postgres服务器,它不允许我再次使用相同的资源。在那种情况下,我需要无限循环,不断在Postgres上ping新连接。

如果需要再次打开连接,那么我认为跟随会有所帮助,

    // THOUGH IT'S CHECKING FOR $this->_pdo 
    // I need to make it NULL before process...
    Yii:app()->db->open();

现在,这是正确的流程吗?或者你们对此有任何其他想法吗?

谢谢...

1 个答案:

答案 0 :(得分:0)

经过大量研究后发现,没有任何解决方案可以自动通知Yii连接再次启动。所以为了维护这个,我在内部保留一个标志来检查连接。

在Yii中,要重新连接任何数据库,您需要使用

删除以前的连接
    Yii::app()->db->setActive(false);

它将删除以前的所有连接和来源,并允许您使用

重新建立连接
    Yii::app()->db->setActive(true);

如果仍然无法找到连接,那么我们可以延迟我们的后台工作几分钟。好处是,您无需重新启动后台工作人员。

此致

相关问题