如何阻止此mysqli扩展类停止执行失败的' real_connect'?

时间:2015-05-07 20:40:22

标签: php mysqli

所以下面的代码处于其婴儿阶段,并且还有很长的路要走 - 但我正在研究一个知道多个数据库(从属等)的数据库平台,这意味着尝试打开一个连接一个人,一旦失败,继续到另一个人。 “数据库连接”中的相关方法'课程如下:

class DatabaseConnection extends mysqli
{
    public function __construct($ConnectAutomatically=false,$Name="database",$Host="127.0.0.1",$Username="root",$Password="",$Catalog="",$Port=3306)
    {
        $this->CurrentHost = $_SERVER['SERVER_NAME'];           

        $this->Name = $Name;
        $this->Host = $Host;
        $this->Username = $Username;
        $this->Password = $Password;
        $this->Port = $Port;
        $this->Catalog = $Catalog;

        if( $ConnectAutomatically )
            parent::__construct($this->Host, $this->Username, $this->Password, $this->Catalog, $this->Port);
        else
            parent::init();

        return;
    }

    public function Open()
    {
        try
        {
            if(!parent::real_connect($this->Host,$this->Username,$this->Password,$this->Catalog,$this->Port))
            {
                return false;
            }
            else
                return true;
        }
        catch( Exception $e )
        {
            return false;
        }
    }
}

这个想法是可以在没有初始化的情况下随时查询数据库 - 因此,Query方法检查连接性,并且在缺少连接时,运行“打开”数据库。方法

我故意在密码中输入一个错误字符以强制它无法连接,以查看它是否会连接到列表中的第二个服务器 - 但是在父亲:: real_connect'因为密码无效,我收到了无法连接的明显响应。

我想知道在这个' Open'中我是否可以采取不同的方法。在real_connect操作失败时不停止执行的方法。我已经对此采取了一些波动并且做空了,所以我不得不问。从我的观点来看,如果连接失败,mysqli不会允许程序执行继续......

我已经有自定义错误捕获,这似乎抓住了错误 - 但是没有解释错误并重新执行DatabaseHandler连接方法与我的错误处理程序中的列表中的下一个,我不会目前看到许多其他方法。

如果需要的话,我很乐意分享更多。

0 个答案:

没有答案