Подключение к нескольким экземплярам DB2 из приложения PHP на BlueMix


Как использовать этот код, который подключается к бд db2....

//анализ переменной среды 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... как мне указать этому коду, к какому экземпляру подключиться... ЕСЛИ у меня будет больше...

Author: Mike Pala, 2016-04-14

1 answers

Предположим, что у вас есть много экземпляров службы базы данных SQL, привязанных к вашему приложению. Теперь, если вы запустите:

$services_json["sqldb"]

Он вернет массив, содержащий элемент для каждого экземпляра базы данных SQL. Чтобы указать на конкретный экземпляр, вы можете сделать:

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

Где i - индекс нужной вам службы. Я предлагаю вам взглянуть на значение переменной среды VCAP_SERVICES в панели мониторинга вашего приложения в Bluemix. Там вы увидите список всех экземпляров службы SQLDB, привязанных к вашему приложению.

 1
Author: Umberto Manganiello, 2016-04-14 09:00:44