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 でこの接続を作成すると、PHP アプリに
VCAP_SERVICES環境変数を使用できるようになります。VCAP_SERVICES環境変数には、Db2 サービスに関するデータベースの詳細が含まれています。VCAP_SERVICESを使用する方が、PHP アプリ内でデータベースの詳細をハードコーディングするより便利です。) -
ローカル作業ディレクトリーで、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> - ローカル作業ディレクトリーから、IBM Cloud ダッシュボード内の PHP アプリの「開始」セクションの指示に従って、更新内容を IBM Cloud にプッシュします。それから、IBM Cloud でアプリを再始動し、ブラウザーでアプリを表示します。