Подключение к нескольким экземплярам 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... как мне указать этому коду, к какому экземпляру подключиться... ЕСЛИ у меня будет больше...
1 answers
Предположим, что у вас есть много экземпляров службы базы данных SQL, привязанных к вашему приложению. Теперь, если вы запустите:
$services_json["sqldb"]
Он вернет массив, содержащий элемент для каждого экземпляра базы данных SQL. Чтобы указать на конкретный экземпляр, вы можете сделать:
$sqldb_config = $services_json["sqldb”][i]
Где i - индекс нужной вам службы. Я предлагаю вам взглянуть на значение переменной среды VCAP_SERVICES в панели мониторинга вашего приложения в Bluemix. Там вы увидите список всех экземпляров службы SQLDB, привязанных к вашему приложению.