我有一个php文件,我想将它连接到数据库 通常我使用localhost但我永远不会在Bluemix中使用php 我应该填写这些属性?
$DB_HOST = 'localhost'; // what should I write instead of
$DB_USER = '';
$DB_PASSWORD = '';
$DB_DATABASE = 'MyDataBase';
请帮助
答案 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上创建数据库服务并将其绑定到您的应用程序。转到应用程序仪表板,您应该在下面看到数据库服务实例。单击“显示凭据”。
但是,正确的方法是通过解析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