2 votes

Comment se connecter à une base de données SQL-s2 à partir d'une application .php dans BlueMix ?

J'ai donc créé un site www sur mon serveur privé. Il s'agit essentiellement d'une page PHP + javascript. J'ai maintenant besoin de le déplacer vers BlueMix. Le seul problème est que, alors que j'ai utilisé une base de données MySQL sur mon serveur privé, je dois maintenant utiliser SQL Database-s2 et tout (à la fois ma page php et la base de données) sur BlueMix.

Mike

2voto

Crescenzo Migliaccio Points 1134

Vous devez analyser les informations de la base de données à partir de VCAP_SERVICES. \service les lettres de créance.

Si votre service de base de données est "SQL Database", vous pouvez vous connecter à SQLDB en utilisant cet exemple de code :

//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

les informations sont automatiquement récupérées dans les VCAP_SERVICES. L'application lit la variable env. et récupère automatiquement les champs username, host, db password.

mais vous pouvez définir manuellement le db, l'hôte, le port, le nom d'utilisateur et le mot de passe en regardant à identifiants de service du service :

Comment récupérer les informations d'identification :

  • à partir de l'interface utilisateur DASHBOARD

    1. cliquez sur l'icône de votre service dans l'interface utilisateur du tableau de bord
    2. dans la nouvelle page, dans le menu de gauche, cliquez sur "Service Credentials".
    3. Si vous ne voyez pas d'informations d'identification mais que vous voyez le bouton "ADD CREDENTIALS", cliquez sur ce bouton, modifiez le nom des informations d'identification comme vous le souhaitez et cliquez sur le bouton "ADD".
    4. De cette façon, vous verrez les informations sur le service (informations d'identification).
  • à partir de la ligne de commande CF

    cf env votre_nom_application

Dans le code, nous utilisons le module DB2 : utiliser le buildpack suivant https://github.com/ibmdb/db2heroku-buildpack-php lorsque vous utilisez SQLDB avec PHP. Il installera le module php 'ibm_db2' pour votre usage.

Vous pouvez définir le buildpack lorsque vous poussez votre application sur Bluemix :

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

2voto

Vous pouvez déployer votre application sur Bluemix en utilisant le buildpack PHP. Après avoir créé l'instance de la base de données SQL et l'avoir liée à l'application PHP sur Bluemix, pour vous connecter au service SQLDB dans Bluemix, vous pouvez utiliser les éléments suivants db2_connect avec les informations d'identification récupérées dans la variable d'environnement VCAP_SERVICES. Je ne connais pas les besoins de votre entreprise, mais si vous souhaitez conserver la cohérence entre les environnements et ne pas migrer vers un autre SGBDR, vous pouvez essayer les solutions suivantes ClearDB Il s'agit d'une base de données en tant que service fiable, tolérante aux pannes et géo-distribuée pour vos applications utilisant MySQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X