所以下面的代码处于其婴儿阶段,并且还有很长的路要走 - 但我正在研究一个知道多个数据库(从属等)的数据库平台,这意味着尝试打开一个连接一个人,一旦失败,继续到另一个人。 “数据库连接”中的相关方法'课程如下:
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连接方法与我的错误处理程序中的列表中的下一个,我不会目前看到许多其他方法。
如果需要的话,我很乐意分享更多。