admin

如何从BlueMix中的.php应用程序连接到SQL Database-s2

sql

因此,我在私人服务器上创建了一个www网站。它基本上是一个PHP +
javascript页面。现在,我需要将其移至BlueMix。唯一的问题是,当我现在在私人服务器上使用MySQL数据库时,我需要在BlueMix上使用SQL
Database-s2和所有数据库(包括我的php页面和数据库)。

麦克风


阅读 47

收藏
2021-06-07

共1个答案

admin

您必须从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中检索。该应用程序读取了环境。变量并自动检索用户名,主机,数据库密码字段。

但是您可以查看 服务的服务凭据 来手动设置数据库,主机,端口,用户名,密码 :

如何检索凭证信息:

  • 从DASHBOARD UI

    1. 单击仪表板用户界面中的服务图标
    2. 在新页面的左侧菜单中,单击“服务凭证”
    3. 如果您没有看到任何凭证,但是看到“ ADD CREDENTIALS”按钮,请单击此按钮,根据需要编辑名称凭证,然后单击“ ADD”按钮。
    4. 这样,您将看到服务信息(凭证)
    5. 从CF命令行

cf env your_app_name

在代码中,我们使用DB2模块: 将SQLDB与PHP结合使用时,请使用以下buildpack
https://github.com/ibmdb/db2heroku-buildpack-
php。它将安装“ ibm_db2”
php模块供您使用。

您可以在Bluemix上推送应用程序时设置构建包:

cf push <your_app_name> -b https://github.com/ibmdb/db2heroku-buildpack-php
2021-06-07