在 PHP 應用程式中連接至 Db2 資料庫

定義 PHP 應用程式與 Db2 資料庫 BLUDB 之間的連線。

程序

  • 情境 1:從 IBM Cloud™ 外部連接:
    1. Web 主控台下載 Db2 驅動程式套件,然後在將執行 PHP 應用程式的機器上安裝驅動程式套件。
    2. 驗證必要條件,並收集資料庫詳細資料及連接認證
    3. 使用 odbc_connect function 來連接至 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 的 Script 檔案,然後從指令行執行此 Script 時會產生下列輸出:
      
      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 服務的資料庫詳細資料。相較於將資料庫詳細資料寫在 PHP 應用程式中,使用 VCAP_SERVICES 更為方便)。
    4. 在本端工作目錄中,更新檔案 index.php,以使用函數 db2_connect 連接至 BLUDB 資料庫。
      範例:
      
      <!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 中重新啟動應用程式,並在瀏覽器中檢視該應用程式。