选择要运行的数据库连接

时间:2015-05-13 14:12:37

标签: php database if-statement pdo

所以我在我的项目中拥有数据库连接。该文件有本地和在线请求,当我在localhost上工作时,会有一个注释掉。

在php中是否有一种方法可以查找它必须使用哪一个?

如果url = localhost / blabla使用本地其他在线使用?

这是连接。

try{
    //local connection
    $db = new PDO('mysql:host = 127.0.0.1; dbname=XXXX', 'root','');

    //local online
    //$db = new PDO('mysql:host = XXXXX; dbname=XXXXX', 'xxxxx','*****');

    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
    echo $e->getMessage();
    die();
}
$db->exec("set names utf8");

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

希望somone可以提供帮助,谢谢

3 个答案:

答案 0 :(得分:1)

您不应检查网址,而是设置config file。然后,您在服务器上的DEVELOPMENT上设置0,如果您在本地,则设置在1

的config.php

<?php
    define('DEVELOPMENT', 1);
?>

database.php中

<?php
    if(DEVELOPMENT) {
        // setup your local DB
    } else {
        // setup your live db
    }
?>

答案 1 :(得分:0)

您可以通过$_SERVER变量知道IP,所以:

define('LOCALHOST', 'XX.XX.XX.XX');

if($_SERVER["REMOTE_ADDR"] == LOCALHOST)
{
  //open connection to the localhost users db
  $db = new PDO('mysql:host = 127.0.0.1; dbname=XXXX', 'root','');
}else{
  //open connection to rest of users db
  $db = new PDO('whatever', 'root','');
}

答案 2 :(得分:-1)

执行此操作,将db.php放入其自己的文件夹中,然后将其上传到服务器,然后更改用户权限,这样就无法使用本地连接覆盖它