如何将PHP连接到Bluemix数据库?

时间:2015-11-07 11:28:57

标签: php database ibm-cloud

我有一个php文件,我想将它连接到数据库 通常我使用localhost但我永远不会在Bluemix中使用php 我应该填写这些属性?

$DB_HOST = 'localhost'; // what should I write instead of 
$DB_USER = '';
$DB_PASSWORD = '';
$DB_DATABASE = 'MyDataBase';

请帮助

3 个答案:

答案 0 :(得分:1)

首先:您在父文件夹中创建 .bp-config/options.json 文件夹

并在options.json文件夹中添加以下代码行,以便sqli连接正常工作。

{
    "PHP_EXTENSIONS": ["mysqli"]
}

现在建立连接:

$DB_HOST = '127.0.0.1:3307';  // insert ip with port number 
$DB_USER = 'user';
$DB_PASSWORD = 'password';
$DB_DATABASE = 'dbname';

$mysqli = new mysqli($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_DATABASE);
$result = $mysqli->query(" SELECT * FROM table_name ");
$row = $result->fetch_assoc();

答案 1 :(得分:1)

在Bluemix上创建数据库服务并将其绑定到您的应用程序。转到应用程序仪表板,您应该在下面看到数据库服务实例。单击“显示凭据”。 enter image description here

但是,正确的方法是通过解析VCAP_SERVICES环境变量以编程方式获取凭据。看这个例子: https://github.com/IBM-Bluemix/php-mysql请参阅db.php

答案 2 :(得分:0)

您必须从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