2013-05-06 41 views
0

我有兩個數據庫服務器。例如:如何實現兩臺數據庫服務器?

(1) Local Server: 

$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$db="edoctor_s"; 

(2) Remote server 
$host = "****.****.net"; 
$user = "***_***"; 
$pass = "****"; 
$db="*****"; 

如果未找到遠程服務器,則本地服務器將處於活動狀態。我想用它們進入一個php配置文件。

+0

感謝您的信息。對我的工作感到抱歉。其實我在發帖之前刪除了一些字符... – 2013-05-06 04:54:23

+0

並且不會從不好的東西中停止檢查一個字符的可能性很低,即使可以手動嘗試 – 2013-05-06 04:56:15

回答

0

使用的if狀況,並比較與IP的,如果是本地比本地主機IP的比較,像127.0.0.1::1如果IPv6的其他人使用其它接口,如

<?php 
    if($_SERVER['REMOTE_ADDR'] == '127.0.0.1' || $_SERVER['REMOTE_ADDR'] == '::1') { 
     // ::1 If loopback address is IPv6 
     //Connect Local 
    } else { 
     //Connect Server 
    } 
?> 
+0

謝謝..我明白了。我修改你的代碼,因爲我首先需要遠程服務器,然後本地服務器...... bcoz如果兩個服務器是活動的,那麼遠程服務器將工作.... – 2013-05-06 04:49:31

+0

@ Md.ShahadatSarker這很好:)但我更喜歡這更多,cuz本地地址將不會改變我們的服務器地址將發生變化 – 2013-05-06 04:51:56

0

檢查服務器是本地的還是住

if($_SERVER['HTTP_HOST']=='localhost' || $_SERVER['HTTP_HOST']=='127.0.0.1'){ 
//local datebase 
} 
else{ 
// live database 
} 
+0

爲什麼不是127.0.0.1呢?或:: 1爲ipv6? – 2013-05-06 04:39:05

+0

是的,這也很好 – 2013-05-06 04:39:33

+1

爲什麼downvote可以請你說出理由? – 2013-05-06 04:40:48

-1

給出了下面的代碼

//check for localhost 
if($con = mysql_connect($host_local, $user_local , $pass_local)){ 
    mysql_select_db($db_local); 
}elseif($con = mysql_connect($host_remote, $user_remote , $pass_remote)){ //Remote connection 
    mysql_select_db($db_remote); 
} 
一試0

雖然我沒有使用它,但可能已滿足您的要求

+0

我真的要dv爲不贊成的mysqli_ * api檢查這個http://stackoverflow.com/questions/12859942/why-shouldnt-i-use- mysql-functions-in-php/14110189#14110189 – 2013-05-06 04:45:48

+0

其實他沒有提及使用哪個庫。所以我只是提到了更簡單的邏輯。 Thanx更新,將檢查升。 – Sid 2013-05-06 05:29:18

0

也許我沒有正確理解你,但你可以創建一個配置值的數組,按優先級順序,嘗試建立數據庫連接的循環,並在連接建立後跳出循環。例如(使用MySQLi):

$db_config = array(
    // Try this first. 
    array(
     'host' => 'xxxxx.xxxxx.xxxx', 
     'user' => 'xxxx_xxxx', 
     'pass' => 'xxxxx', 
     'db' => 'xxxxx_s' 
    ), 

    // Then this. 
    array(
     'host' => 'localhost', 
     'user' => 'root', 
     'pass' => '', 
     'db' => 'edoctor_s' 
    ) 

    // ... 
); 

$connection = null; 

foreach ($db_config as $config) { 
    $connection = mysqli_connect($config[ 'host' ], $config[ 'user' ], $config[ 'pass' ], $config[ 'db' ]); 

    // No need to keep looping if we have a valid connection. 
    if (! mysqli_connect_error()) 
     break; 
    else 
     $connection = null; 
} 
相關問題