在发生故障时更改MySQL连接 - PHP


Changing MySQL connection in the event of failure - PHP

我正在做一个项目,我需要测试远程MySQL连接,如果它失败了,那么我需要代码切换到使用本地MySQL连接。 我遇到的问题是代码总是显示错误,这确实会杀死最终用户体验。

我尝试过的事情:

  1. 尝试捕获异常<- 让它显示自定义消息,但没有别的。
  2. 使用 @
  3. 对着电脑大喊大叫<- 不起作用,但我感觉好多了。

法典:

//-----Remote MySQL Server-----------
$rem_host="99.99.999.999"; //Host Name 
$rem_user="testUser"; //MySQL Username 
$rem_pass="testPass"; //MySQL Password 
$rem_db="testDb"; //Database Name 

//----Local MySQL Server-----------
$local_host="127.0.0.1"; //Host Name 
$local_user="testLocal"; //MySQL Username 
$local_pass="passLocal"; //MySQL Password 
$local_db="localDb"; //Database Name 

$remoteConnection = mysqli_connect("$rem_host","$rem_user","$rem_pass","$rem_db");
if(!$remoteConnection){ $check_connection=0; }
else{ $check_connection=1; mysqli_close($remoteConnection); }

if($check_connection==1){
$db_host = $rem_host; //Host Name 
$db_user = $rem_user; //MySQL Username 
$db_pass = $rem_pass; //MySQL Password 
$db_name = $rem_db; //Database Name 
}
else{
$db_host = $local_host; //Host Name 
$db_user = $local_user; //MySQL Username 
$db_pass = $local_pass; //MySQL Password 
$db_name = $local_db; //Database Name 
}
?>

根据您的选择更改第 2 行。首先我得到URL,然后检查它是否有"本地主机"字,然后我遵循本地主机详细信息(我在本地机器中使用本地主机/)。如果$actual_link无法获取本地主机,请遵循在线详细信息

<?php
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
if (strpos($actual_link,'localhost') !== false) 
{
    //local db detail
    $servername='localhost';     
    $dbusername='root';          
    $dbpassword='';              
    $dbname='db_gbook';
    echo "local";
}
else
{
    //online db detail
    $servername='localhost';     
    $dbusername='dbaname';          
    $dbpassword='dbpassword';              
    $dbname='yourdbname';
    echo "web";
}
global $link;
$link=mysql_connect ("$servername","$dbusername","$dbpassword");
if(!$link)
{
    die("Could not connect to MySQL");
}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());    
echo "Succesive";
?>