2016-04-14 4 views
2

wie diesen Code verwenden, die auf die db2 db verbindet ....Anschluss an mehr als eine Instanz von DB2 aus einer PHP-Anwendung auf Bluemix

// analysieren VCAP_SERVICES Umgebungsvariable

$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 

. ..mit mehr als 1 dB verbinden ... NICHT zur gleichen Zeit natürlich.

ODER ... wenn es möglich ist ... kann ich mehr als ein Schema haben?

im Grunde ... Ich werde Client-Daten drin haben ... und jeder Client wird gleiche Tabellen mit gleichen Namen haben ... und ähnliche Datenstruktur.so muss ich sie getrennt halten ... in verschiedenen Datenbanken oder verschiedenen Schemas. Aber der Code, den ich bekam, verbindet sich automatisch mit meiner Instanz von db2 ... wie sage ich dem Code, mit welcher Instanz ich mich verbinden soll ... WENN ich mehr habe ...

Antwort

1

Angenommen, Sie haben viele SQL-Datenbankdienste Instanzen, die an Ihre Anwendung gebunden sind. Nun, wenn Sie laufen:

$services_json["sqldb"]

es gibt einen Array zurück, ein Element für jede SQL-DB-Instanz enthält. Um zu einer bestimmten Instanz zeigen Sie tun können:

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

wo i ist der Index des Service, den Sie möchten. Ich schlage vor, dass Sie sich den Wert der Umgebungsvariablen VCAP_SERVICES in Ihrem Anwendungs-Dashboard auf Bluemix ansehen. Dort sehen Sie die Liste aller SQLDB-Service-Instanzen, die an Ihre Anwendung gebunden sind.