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

如何从BlueMix中的.php应用程序连接到SQL数据库-s2,php,sql,ibm-cloud,Php,Sql,Ibm Cloud,所以我在我的私人服务器上创建了一个www站点。它基本上是一个PHP+javascript页面。现在我需要把它移到BlueMix。唯一的问题是,虽然我在我的私有服务器上使用了MySQL数据库,但现在我需要在BlueMix上使用SQL Database-s2和all(我的php页面和数据库) Mike您必须解析来自VCAP\u服务\服务凭据的db信息 如果您的数据库服务是“SQL数据库”,则可以使用以下示例代码连接到SQLDB: //parse VCAP_SERVICES Environment v

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


Mike

您必须解析来自VCAP\u服务\服务凭据的db信息

如果您的数据库服务是“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_服务中检索。 应用程序读取env。变量,并自动检索用户名、主机、db密码字段

但您可以手动设置数据库、主机、端口、用户名、密码 服务的服务凭据

如何检索凭据信息:

  • 从仪表板用户界面

  • 单击仪表板UI中的服务图标
  • 在新页面的左侧菜单中,单击“服务凭据”
  • 如果您没有看到任何凭据,但看到“添加凭据”按钮,请单击此按钮,根据需要编辑名称凭据,然后单击“添加”按钮
  • 这样,您将看到服务信息(凭据)
  • 从CF命令行

    cf env您的应用程序名称

在我们使用DB2模块的代码中:在PHP中使用SQLDB时,请使用以下构建包。它将安装“ibm_db2”php模块供您使用

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

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

您可以使用PHP构建包在Bluemix上部署应用程序。创建SQL数据库实例并将其绑定到Bluemix上的PHP应用程序后,要连接到Bluemix中的SQLDB服务,可以使用从VCAP_SERVICES环境变量检索的凭据。我不知道您的业务需求,但是,如果您想保持环境的一致性,不想迁移到另一个RDBMS,您可以尝试,这是一种可靠、容错、地理分布的数据库即服务,适用于支持MySQL的应用程序。

我希望使用ClearDB MySQL。。。。我使用MySQL在我的私有服务器上构建了整个网页,但现在我必须将其转移到IBM资源中。。。虽然BlueMix允许ClearDB,但它是一个“第三方”解决方案/我使用MySQL在我的私有服务器上构建了整个网页,但现在我必须将其转移到IBM资源中。。。虽然BlueMix允许ClearDB,但它是一个“第三方”解决方案;/因此,现在我必须重写所有查询和到数据库的连接,以便它与DB2一起工作。。。。我看得出你也是IBM的员工。如果我在代码方面遇到问题,请联系您好吗?Crescenzo,正如我所写的,我已经构建了整个工具,现在需要重新构建它以在BlueMix上运行。我会尽我所能,如果我卡住了,也许我们可以打个电话什么的?我有几个问题:a)你在上面给我发了链接的buildpack。。。如何安装它?在我的笔记本电脑上还是在BlueMix上?我该怎么处理它?我知道这是一个愚蠢的问题,但我对您提供的PHP代码中的BlueMix B)非常陌生。。。我不完全确定密码和用户名放在哪里,我的DB密码和用户名是什么。与我的BlueMix凭证相同吗?