2015-08-03 98 views
-2

我使用我的本地主机工作在我的项目上,但有时我需要将网站在线显示给我的客户。当我这样做时,我需要更改pdo连接详细信息webhosting的连接详细信息。PHP PDO多个数据库连接选项

有什么办法在PHP中自动执行它?我的意思是,我创建了各种连接,如果PDO无法连接到第一个,然后尝试另一个。

$option1 = new PDO('mysql:host=host1;dbname=db1', 'user1', 'pw1'); 
$option2 = new PDO('mysql:host=host2;dbname=db2', 'user2', 'pw2'); 
$option3 = new PDO('mysql:host=host3;dbname=db3', 'user3', 'pw3'); 

我需要它试图从每一个选项,连接到正确的数据库,并返回一个简单的$ db对象的脚本。

+2

为什么不只是决定你是什么主机?然后用switch()来改变细节? – Epodax

+0

我的答案适合你吗? – Hassaan

+0

是的,谢谢! – Daniel

回答

2

尝试

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1' or $_SERVER['REMOTE_ADDR'] == '::1') 
{ 
    # LOCAL 
    define('dbhost', 'localhost'); 
    define('dbuser', 'root'); 
    define('dbpassword', ''); 
    define('dbname', 'db'); 
} else { 
    # REMOTE 
    define('dbhost', 'example.com'); 
    define('dbuser', 'remoteUser'); 
    define('dbpassword', 'remotePass'); 
    define('dbname', 'remoteDb'); 
} 

$conn = new PDO('mysql:host='.dbhost.';dbname='.dbname.', '.dbuser.', '.dbpassword);