PHPとOracleDBの連携

今回のエントリーでは、PHP上でオラクルを利用する手順をご紹介していこうと思います。

PHPでOracleDBを利用するメリット

昨今PHPによるWebシステム開発は増加の一途をたどり、Javaと並ぶ大きな流れとして、
さまざまなシステムで利用されるようになってきました。

PHPは、コンパイルなしで即時利用ができるインタプリタ言語であり、テキストエディタでも開発が可能で、開発速度が速いのが最大の特徴です。

データベース・アクセスを初めとするさまざまな機能が利用でき、パフォーマンスが良い点も挙げられます。

昨今のシステム開発のニーズとして、企業のビジネススタイルの変化に合わせたアイデアの即時具現化や要望への早期対応とそれに付随するアプリケーションの信頼性
が大きなウェイトを占めています。

Oracle Databaseは最初のリリースから20数年たち実績を積み重ね、信頼できるデータベースとして進化、発展し、現在ではWEbアプリケーション対応を意識した形でリリースが行われております。

よって、PHPとOracleを組み合わせると、スピード開発に合わせ、高い柔軟性と信頼性を持った

アプリケーションの提供を実現できることが分かります。

*OSは、Linux、Windows双方可

WEBサーバーにapacheを利用しています。
PHP ver 5.3.3

■無料オラクルDB(Oracle Database XE)をインストール

①Oracleのウェブサイトから、Oracle Database XEをダウンロードします。

http://www.oracle.com/index.html

②グローバルナビゲーションのダウンロードタブより、

Oracle Database 10g Express Edition Downloadsをクリック

③オラクルDBをインストールするマシンに合わせて、

リンクをクリックし、次ページでダウンロードする形式を選択してダウンロードを開始します。
(*ONTへの会員登録が必須となります。)

④ダウンロードが終了したら、各OSに合わせ、インストールを実行してください。

windowsの場合は、.exe形式をダウンロードするとインストールが容易に完了します。

⑤(winの場合)インストールが終了したら、

「データベースのホームページを表示します」をチェックし、「終了」ボタンをクリックしてください。

⑥localhost:8080から始まるオラクルの管理画面が開くことを確認してください。(Linuxの場合は、http://localhost:8080/apexよりアクセス)

J2EEの開発を行っている方で、tomcatがローカルPC内に入っている場合、
tomcatが初期ポート番号として8080を利用しています。localhost8080に正常に接続できず、
tomcatが入っているという方は、下記に記す方法で、oracle/apex起動時のポート番号を変更してください。

■Oracle/apexのポート番号変更方法

コマンドラインより、SQL-plusにログインする

インストールしたOracleパッケージ内のRunSQL Command Lineを起動し、

SQL>connect / as sysdba

Connected to an idle instance

と表示されたら、

SQL>startup と入力

Database openedと出力されたら、

SQL>execute dbms_xdb.sethttpport(変更したいポート番号); ←オラクルのプロシージャ

PL/SQL procedure successfully completedと表示されたら完了

http://localhost:変更後のポート番号/apex をブラウザから入力してアクセスすると
管理画面が正常に表示されると思います。
*尚、ポート番号変更の際は、ウェルノウンポート番号の利用は避けてください。

⑦管理画面が開いたら、ユーザーにsystem、パスワードにインストール時に設定したパスワードを

入力して、管理画面にログインします。
*administoration>DatabaseUserの順に進んで、自分のアカウントを作っておきましょう。

これでオラクルのインストールは完了です。

■PHPのOracleエクステンションを有効にする

①まずは、phpinfo()で、オラクルのエクステンションが有効になっているか確認します。

Extensionの「oci8」がenableになっていれば、すでにオラクルエクステンションが有効になっています。

*オラクルエクステンションが有効になっている方は、次のセクションへ進んでください。

その他の方は、このセクションでの設定を済ませる必要がございます。

②PHPのoci8を有効にしていきましょう。

php.iniをテキストエディタで開きます。
(Unix系OSの方は、権限の関係上、php.iniを管理者権限で実行しないと開けないと思いますので、
sudoして、emacsかviで開くのがよいと思います。)

③php.ini中のExtentionsが記載されている中から、

;extension=php_oci8.dll

の一行を探し、先頭の;を削除して、保存してください。

④サーバーを再起動し、phpinfo()をもう一度すると、

oci8がenableになっているはずです。

oci8がenableになっていればエクステンションの設定は完了です。

■PHPからoracleDBにアクセスする

SQL-plus(コマンドラインからOracleを操作するツール)

を起動し、

SQL> alter user (先ほどapex上で追加したユーザー名) identified by (先ほどapex上で追加したパスワード);

を入力し、ユーザーを追加します。

ユーザーの追加が終わったら、サンプルプログラムを作成します。

OracleConTest.phpのようなサンプルphpファイルを作成してください。

内容を、

<?php

//現在のタイムスタンプを返すサンプルプログラム

$con = oci_connect(“ユーザー名”,“パスワード”); //オラクルデータベースへ接続

$sql = “select sysdate from dual“; // 実行するSELECT文

$stmt = oci_parse($con, $sql); // SQL文のパース処理
$results = oci_execute($stmt); // パースしたSQL文を実行し、結果を得る
$row = oci_fetch_row($stmt); // 結果を$row配列に取得(1行)

echo $row[0] . “rn”; // 結果をエコー

oci_close($con); // 接続を切断

?>

として保存します。

以上が完了したら、コマンドラインより、

php> OracleConTest.php

10-09-20

のようなタイムスタンプが帰ってくれば成功です。

以上が、PHPモジュールをコンパイルする際に組み込む方法の説明です。

これで、PHPを通じてOracle Databaseを利用できるようになりました。

基本的な命令文はMYSQLやPostgreSql等と大差ありませんので、

気軽に大規模開発の一歩を踏み出せるのではないでしょうか。

この記事は

Interest Speaker > How to / Tips > PHPとOracleDBの連携

この記事と類似または関連した記事

PHPの開発環境構築(Aptana XAMPP Xdebug)
PHPの開発環境構築(Aptana XAMPP Xdebug)
画像がありません
Google App Engineのクラウド環境とJavaVM上で、PHPを動かす
Redmineのインストールについて