在 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 中创建此连接将使 VCAP_SERVICES 环境变量可供 PHP 应用程序使用。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 中重新启动该应用程序,并在浏览器中查看该应用程序。