PHP アプリケーションでの Db2 データベースへの接続

PHP アプリケーションと Db2 データベースの BLUDB の間の接続を定義します。

手順

  • シナリオ 1: IBM Cloud™ の外部からの接続:
    1. Web コンソールから Db2 ドライバー・パッケージをダウンロードしてから、PHP アプリケーションを実行するマシン上にそのドライバー・パッケージをインストールします。
    2. 前提条件を確認し、データベースの詳細と接続資格情報を収集します。
    3. odbc_connect 関数を使用して BLUDB データベースに接続します。
      次に PHP コードの例を示します。
      
      <?php
      
      $database = "BLUDB";        # Get these database details from
      $hostname = "<Host-name>";  # the web console
      $user     = "<User-ID >";   #
      $password = "<Password>";   #
      $port     = 50000;          #
      $ssl_port = 50001;          #
      
      # Build the connection string
      #
      $driver  = "DRIVER={IBM DB2 ODBC DRIVER};";
      $dsn     = "DATABASE=$database; " .
                 "HOSTNAME=$hostname;" .
                 "PORT=$port; " .
                 "PROTOCOL=TCPIP; " .
                 "UID=$user;" .
                 "PWD=$password;";
      $ssl_dsn = "DATABASE=$database; " .
                 "HOSTNAME=$hostname;" .
                 "PORT=$ssl_port; " .
                 "PROTOCOL=TCPIP; " .
                 "UID=$user;" .
                 "PWD=$password;" .
                 "SECURITY=SSL;";
      $conn_string = $driver . $dsn;     # Non-SSL
      $conn_string = $driver . $ssl_dsn; # SSL
      
      # Connect
      #
      $conn = odbc_connect( $conn_string, "", "" );
      if( $conn )
      {
          echo "Connection succeeded.";
      
          # Disconnect
          #
          odbc_close( $conn );
      }
      else
      {
          echo "Connection failed.";
      }
      ?>
      
      この PHP コードの例を C:¥sample.php と呼ばれるスクリプト・ファイルに保存してから、スクリプトをコマンド・ラインから実行すると、以下の出力が作成されます。
      
      C:\> php –f sample.php
      
      Connection succeeded.
      
  • シナリオ 2: IBM Cloud での PHP Web アプリからの接続
    1. IBM Cloud カタログから、新しい PHP アプリを作成します。
    2. IBM Cloud ダッシュボード内の新しい PHP アプリの「開始」セクションから、アプリのスターター・コードをローカル作業ディレクトリーにダウンロードします。
    3. IBM Cloud ダッシュボードで、Db2 サービスから新しい PHP アプリへの新しい接続を作成します。
      (IBM Cloud でこの接続を作成すると、PHP アプリに VCAP_SERVICES 環境変数を使用できるようになります。VCAP_SERVICES 環境変数には、Db2 サービスに関するデータベースの詳細が含まれています。VCAP_SERVICES を使用する方が、PHP アプリ内でデータベースの詳細をハードコーディングするより便利です。)
    4. ローカル作業ディレクトリーで、db2_connect 関数を使用して BLUDB データベースに接続するように、index.php ファイルを更新します。
      次に例を示します。
      
      <!DOCTYPE html>
      <html>
      <head>
          <title>PHP Starter Application</title>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <link rel="stylesheet" href="style.css" />
      </head>
      <body>
      <?php
      if( getenv( "VCAP_SERVICES" ) )
      {
          # Get database details from the VCAP_SERVICES environment variable
          #
          # *This can only work if you have used the Bluemix dashboard to 
          # create a connection from your dashDB service to your PHP App.
          #
          $details  = json_decode( getenv( "VCAP_SERVICES" ), true );
          $dsn      = $details [ "dashDB" ][0][ "credentials" ][ "dsn" ];
          $ssl_dsn  = $details [ "dashDB" ][0][ "credentials" ][ "ssldsn" ];
      
          # Build the connection string
          #
          $driver = "DRIVER={IBM DB2 ODBC DRIVER};";
          $conn_string = $driver . $dsn;     # Non-SSL
          $conn_string = $driver . $ssl_dsn; # SSL
      
          $conn = db2_connect( $conn_string, "", "" );
          if( $conn )
          {
              echo "<p>Connection succeeded.</p>";
              db2_close( $conn );
          }
          else
          {
              echo "<p>Connection failed.</p>";
          }
      }
      else
      {
          echo "<p>No credentials.</p>";
      }
      ?>
      </body>
      </html>
      
    5. ローカル作業ディレクトリーから、IBM Cloud ダッシュボード内の PHP アプリの「開始」セクションの指示に従って、更新内容を IBM Cloud にプッシュします。それから、IBM Cloud でアプリを再始動し、ブラウザーでアプリを表示します。