2013-05-06 47 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; 
} 
相关问题