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

时间:2016-04-11 14:01:09

标签: php sql ibm-cloud

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

麦克

2 个答案:

答案 0 :(得分:2)

您必须从VCAP_SERVICES \服务凭据解析数据库信息。

如果您的数据库服务是" 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. 在新页面的左侧菜单中,点击" Service Credentials"
    3. 如果您没有看到任何凭据,但是看到按钮"添加证书",请单击此按钮,根据需要编辑名称凭据"添加&#34 ;按钮。
    4. 通过这种方式,您将看到服务信息(凭据)
  • 来自CF命令行的
  • cf env your_app_name

在我们使用DB2模块的代码中:在使用SQLDB和PHP时使用以下buildpack https://github.com/ibmdb/db2heroku-buildpack-php。它将安装' ibm_db2' php模块供您使用。

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

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

答案 1 :(得分:2)

您可以使用PHP buildpack在Bluemix上部署应用程序。创建SQL数据库实例并将其绑定到Bluemix上的PHP应用程序后,要连接到Bluemix中的SQLDB服务,您可以将db2_connect与从VCAP_SERVICES环境变量中检索到的凭据一起使用。我不了解您的业务需求,但是如果您想要在整个环境中保持一致性并且不想迁移到另一个RDBMS,您可以尝试ClearDB,这是一个可靠的,容错的,为MySQL驱动的应用程序提供地理分布式数据库即服务。