在 PHP 应用程序中连接到 Db2 数据库
定义 PHP 应用程序与 Db2 数据库 BLUDB 之间的连接。
过程
-
方案 1:从 IBM Cloud™ 外部进行连接:
- 从 Web 控制台下载 Db2 驱动程序包,然后在将要运行 PHP 应用程序的机器上安装这个驱动程序包。
- 验证先决条件,并收集数据库详细信息和连接凭证。
-
使用 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 应用程序进行连接
- 从 IBM Cloud 目录中,创建新的 PHP 应用程序。
- 从 IBM Cloud 仪表板中新 PHP 应用程序的“开始”部分中,将应用程序起动器代码下载到本地工作目录。
-
在 IBM Cloud 仪表板中,创建从 Db2 服务到新 PHP 应用程序的新连接。
(在 IBM Cloud 中创建此连接将使
VCAP_SERVICES
环境变量可供 PHP 应用程序使用。VCAP_SERVICES
环境变量包含 Db2 服务的数据库详细信息。与在 PHP 应用程序中硬编码数据库详细信息相比,使用VCAP_SERVICES
更方便。) -
在本地工作目录中,更新 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>
- 按 IBM Cloud 仪表板中 PHP 应用程序的“开始”部分中的指示信息进行操作,将更新从本地工作目录推送到 IBM Cloud。然后,在 IBM Cloud 中重新启动该应用程序,并在浏览器中查看该应用程序。