|
||||||||||
|
前のページ 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 |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||

