2016-04-14 10 views
2
DB2 DBに接続し、このコードを使用する方法

上のPHPアプリケーションからDB2の複数のインスタンスへの接続....BlueMix

//は

$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環境変数解析。 .. 1つ以上のデータベースに接続する...もちろん同時にではありません。

OR ...可能な場合は...複数のスキーマを持つことはできますか?

基本的には...私はそこにクライアントデータを持っています...そして、各クライアントは同じ名前の同じテーブルを持っています...そして同様のデータ構造です。私はそれらを別々に保つ必要があります...別のデータベースや異なるスキーマで実行されます。しかし、私が持っているコードは自動的にDB2のインスタンスに接続します...どのインスタンスに接続するべきかコードを教えてください...もっと多くのものがある場合

答えて

1

多くのSQLデータベースサービスアプリケーションにバインドされたインスタンス今、あなたが実行した場合:

$services_json["sqldb"]

それは、各SQL DBインスタンスの要素を含む配列を返します。特定のインスタンスを指すように、あなたが行うことができます:

$sqldb_config = $services_json["sqldb”][i]

は、あなたが望むサービスの指標です。 Bluemixのアプリケーションダッシュボード内のVCAP_SERVICES環境変数の値を調べることをお勧めします。そこに、アプリケーションにバインドされているすべてのSQLDBサービスインスタンスのリストが表示されます。

関連する問題