PHP - 多个部署环境的不同MySQL连接

时间:2017-03-03 02:38:28

标签: php mysql

我有一个用PHP编写的api,用于支持我的Android应用程序的后端服务。我正在设置不同的环境 - 开发,升级,生产 - 每个环境都有自己的数据库。 API对其各自的MySQL数据库执行查询,所有内容都在开发中运行良好。

我的问题是关于在每个环境中为api处理不同数据库连接的正确技术?有没有一种更简单的方法来更改我的php-> mysql连接使用的数据库,而不是在从开发部署到分段之前手动更改所有数据库?

我来自Android环境,所以马上想到的是Gradle的构建风格以及如何根据您想要的特定构建变体使用不同的代码。

2 个答案:

答案 0 :(得分:1)

我认为这是Apache environment variables的一个很好的用例,可以在httpd.conf文件(或.htaccess文件)中设置。

基本上,你可以这样:

SetEnv DATABASE_NAME "MyDB"

在你的httpd.conf文件中,然后在PHP中使用:

$_SERVER['DATABASE_NAME']

访问它。

通常,最好将特定于环境的内容保留在代码之外,以便您的代码更具可移植性。你的案子就是一个很好的例子。

修改(rpm): 确保在修改httpd.conf文件后重新启动apache。我有问题得到这个答案工作,但重新启动Apache修复了一切。

答案 1 :(得分:0)

我们所做的是将数据库连接参数放在单独的包含文件中,例如

$db_host = "xxx";
$db_user = "xxx";
$db_password = "xxx";
$db_database = "xxx";

然后其他脚本可以使用

require_once('db_params.php');

并在建立数据库连接时使用这些变量。

然后我们在不同的环境中使用不同的脚本内容。