Как подключиться к базе данных SQL-s2 из a.php применение в BlueMix


Поэтому я создал сайт www на своем частном сервере. Это в основном страница PHP + javascript. Теперь мне нужно переместить его в BlueMix. Единственная проблема заключается в том, что, хотя я использовал базу данных MySQL на своем частном сервере, теперь мне нужно использовать базу данных SQL-s2 и все (как мою страницу php, так и базу данных) на BlueMix.

Майк

Author: Mike Pala, 2016-04-11

2 answers

Вам необходимо проанализировать информацию бд из учетных данных VCAP_SERVICES\service.

Если ваша служба базы данных "База данных SQL", вы можете подключиться к SQLDB, используя следующий пример кода:

//parse VCAP_SERVICES Environment variable
$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

Информация автоматически извлекается из VCAP_SERVICES. Приложение считывает переменную env. и автоматически извлекает поле имени пользователя, хоста, пароля бд.

Но вы можете вручную установить базу данных, хост, порт, имя пользователя, пароль, просмотрев учетные данные службы услуга:

Как получить учетные данные:

  • Из ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ПАНЕЛИ МОНИТОРИНГА

    1. нажмите на значок службы в пользовательском интерфейсе панели мониторинга
    2. на новой странице в левом меню нажмите "Учетные данные службы"
    3. Если вы не видите никаких учетных данных, но видите кнопку "ДОБАВИТЬ УЧЕТНЫЕ данные", нажмите эту кнопку, отредактируйте учетные данные имени, как вы хотите, и нажмите кнопку "ДОБАВИТЬ".
    4. Таким образом, вы увидите сервис информация (учетные данные)
  • Из командной строки CF

    cf env ваше_апп_имя

В коде мы используем модуль DB2: используйте следующий пакет сборки https://github.com/ibmdb/db2heroku-buildpack-php когда вы используете SQLDB с PHP. Он установит php-модуль "ibm_db2" для вашего использования.

Вы можете установить пакет сборки при запуске приложения в Bluemix:

cf push <your_app_name> -b https://github.com/ibmdb/db2heroku-buildpack-php
 2
Author: Crescenzo Migliaccio, 2016-04-12 13:44:28

Вы можете развернуть свое приложение на Bluemix с помощью пакета сборки PHP. После создания экземпляра базы данных SQL и привязки его к приложению PHP в Bluemix для подключения к службе SQLDB в Bluemix вы можете использовать db2_connect с учетными данными, полученными из переменной среды VCAP_SERVICES. Я не знаю ваших бизнес-требований, однако, если вы хотите сохранить согласованность в разных средах и не хотите переходить на другую СУБД, вы можете попробовать ClearDB, то есть надежная, отказоустойчивая, географически распределенная база данных как услуга для ваших приложений на базе MySQL.

 2
Author: Umberto Manganiello, 2016-04-11 14:26:15