用于选择具有共享代码的不同本地主机数据库的方法


Method for selecting different local host database with shared code

我正在使用这个简单的函数连接到named_database。但该代码及其相关项目在多个网站上使用。我厌倦了不断编辑DB_PASS设置等

function select_named_db()
 {
  $link = mysqli_connect( DB_HOST, DB_USER, DB_PASS);
  $result=mysqli_select_db( $link, DB_NAME  ) ;
  return $link;
 }

我该如何更改我的函数,使其可以尝试2或3种不同的数据库设置,以便脚本可以确定要使用的主机、用户和密码集?

会是这样简单的事情吗?

if (!mysqli_connect( DB_HOST, DB_USER, DB_PASS)) 
   {
      $link = mysqli_connect( DB_HOST, DB_USER, DB_PASS);
     } elseif (!mysqli_connect( DB_HOST2, DB_USER2, DB_PASS2))
       {
        $link=mysqli_connect( DB_HOST2, DB_USER2, DB_PASS2);
         }

或者有更好的程序方法吗?

settings.pp:

if (ENV == 'dev') {
    define('DB_HOST', 'localhost');
    // and so on
} elseif(ENV == 'production') {
    define('DB_HOST', '127.0.0.1');
    // and so on
}

然后在引导文件或Web服务器配置中的某个位置定义ENV

将参数传递给select_named_db()不是更好吗?

你可以有一组数据库连接:

$DB_HOST[0]=。。。

$DB_USER[0]=。。。

根据您调用的页面,使用数据库或其他数据库。此参数可以在函数中定义,也可以在会话中传递,如您所愿。。。