TOP書籍連動> PDO vs OCI & ADODB
Oracle&PHPでWeb構築
OracleとPHPでウェブサイトを構築する

第1回:親密になったOracleとPHPの関係

著者:Robert Mark   2006/2/9
前のページ  1  2  3
PDO vs OCI & ADODB

   PHPでOracleのデータにアクセスする方法はここ数年の間に、何回か変更されています。PHPに関して考えてみると、PHPで利用できるデータベースのドライバがいくつもあるため、PHPの開発には行き当たりばったり的な印象を与えられるかもしれません。データベース間で必要な機能にそれほど差はないはずなのに、それぞれのドライバは特定のデータベースプラットフォームとなっています。

   なぜMySQL、Postgres、Oracleで異なるAPIを使用しなければならないのか、と考えるのは当然でしょう。PHPが開発されていた時に、データベースアクセスの機能はデータベースごとに別々のグループが作成していたので、異なるAPIが複数できてしまいました。そのため、MySQLにアクセスする時に使用できる機能がOracleにアクセスする際には使用できなかったり、その逆の状況も生まれています。そのためPHPコミュニティではデータベースアクセスのAPIを再度新しく開発しています。


PHP Data Objects(PDO)

   PDOは新しい共通のデータベースAPIです。PDOは現在開発中ですが、PHP 5.1のリリースには標準で組み込まれます。Oracleに関連する機能では、接続ドライバ、バインド変数、トランザクション、ラージオブジェクトやエラーハンドリングなどの機能がリファクタリングされています。

   一番重要なのは、PDOは複数のデータベースアクセスに対して共通のインタフェースを提供しているということです。データベースレイヤーを抽象化することで、同じAPIを使用することができます。このコンセプトはADOdb Database Abstraction Library(http://adodb.sourceforge.net)などのデータベース抽象化ライブラリと同じ考えです。ADOdbもデータベースにアクセスするのに統一されたAPIを提供します。

   これは非常に簡単に扱うことができますが、Oracleへのアクセスの抽象化では完全に成功しているとは言えません。というのもOracleには他のデータベースでは使用できない機能があるからです。具体的には、Oracleは参照カーソルというレコードセットへのポインタを表すデータ型を使用することができます。

   このデータ型を使用するデータベースはOracleだけなので、ADOdb ではOracle専用にExecuteCursorという関数をもっています。また、ADOdbドライバはベンチマークをとってみるとかなり高速であることもわかるでしょう。

前のページ  1  2  3


Ilia Alshanetsky
著者プロフィール
Robert Mark
ケベックのモントリオールにあるMcGill大学に勤めており、シニアWebプログラマ/データベースプログラマ。主にOracleとPHPを使って、Webサイトを構築している。


INDEX
第1回:親密になったOracleとPHPの関係
  PHPとOracleの提携
  データベースキャッシュ/データキャッシュの使用
PDO vs OCI & ADODB