从BlueMix上的PHP应用程序连接到多个DB2实例

时间:2016-04-14 08:54:38

标签: php db2 ibm-cloud

如何使用连接到db2 db ....

的代码

//解析VCAP_SERVICES环境变量

$vcap_services = $_ENV["VCAP_SERVICES"];
$services_json = json_decode($vcap_services,true);
$sqldb = $services_json["sqldb"];
if (empty($sqldb)) {
    echo "No sqldb service instance is bound. Please bind a sqldb service instance";
    return;
}

//Get Credentials object (db,host,port,username,password)
$sqldb_config = $services_json["sqldb"][0]["credentials"];

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=".
   $sqldb_config["db"].
   ";HOSTNAME=".
   $sqldb_config["host"].
   ";PORT=".
   $sqldb_config["port"].
   ";PROTOCOL=TCPIP;UID=".
   $sqldb_config["username"].
   ";PWD=".
   $sqldb_config["password"].
   ";";


$conn = db2_connect($conn_string, '', ''); //db connection 

...连接到超过1分贝...当然不是在同一时间。

或者......如果可能的话......我可以拥有多个架构吗?

基本上......我会在那里拥有客户端数据......并且每个客户端将具有相同名称的相同表格......以及类似的数据结构。所以我需要将它们分开...在不同的数据库或不同的模式中。但是我得到的代码自动连接到我的db2实例...如何告诉代码连接到哪个实例...如果我有更多......

1 个答案:

答案 0 :(得分:1)

假设您有许多绑定到您的应用程序的SQL数据库服务实例。现在如果你跑:

$services_json["sqldb"]

它将返回一个包含每个SQL数据库实例的元素的数组。要指向您可以执行的特定实例:

$sqldb_config = $services_json["sqldb”][i]

其中 i 是您想要的服务的索引。我建议您查看Bluemix上应用程序仪表板中VCAP_SERVICES环境变量的值。在那里,您将看到绑定到您的应用程序的所有SQLDB服务实例的列表。