TOP書籍連動> PDOのコンセプト
まるごと PHP!
まるごと PHP!

Part4:PDO(PHP Data Object)データベース抽象化レイヤクラス(1)

著者:岩切洋一(IWAKIRI, Yohichi)   2005/3/28
1   2  次のページ
PDOのコンセプト

   PHP5で登場したPDOは、これまでのデータベース接続の悩みを一気に解消する可能性を秘めた、新しいデータベースAPIです。本稿では、現在、開発が進められているPDOを一足お先にご紹介します。

   PDO(PHP Data Object)は、PHP5用に開発された新たなデータベース抽象化レイヤクラスです。本稿執筆時点で公開されているのはα版ですが、PHP5.1には正式版が付けられるようです。本稿では、このPDOの最新の機能を先取りして検証します。

   ところで、PHP4にも何種類ものデータベース抽象化レイヤが存在したため、どのレイヤを選択するか悩んだ経験をお持ちの方は多いのではないでしょうか。新たに登場したPDOでは、開発コンセプトとして、次の4点がうたわれています。いずれの点も開発者にとって魅力的なものではないでしょうか。

  • ライトウェイト
  • データベース操作のための共通APIの提供
  • 性能の向上
  • コアモジュールとドライバモジュールの分離
PHPデータベース抽象化レイヤの変遷(1)

   PHPの特長として「Webプログラミングが容易」と「各種データベース連携が容易」の2つはよく聞かれることでしょう。PostgreSQL、MySQL、OracleとPHPが連携可能なデータベースは実に10数種類に及びます。PHPの実装では、各データベース用の関数が用意されており、それを使ってデータベースを操作します。しかし、それらの関数はデータベースごとに独自に実装されているため、関数名、パラメータの種類や並びなどが不統一であったり、データベース固有の機能に依存する関数があったりして、異なるデータベースへの移行はあまりスムーズに行えません。そこで登場するのがデータベースを抽象化するクラスです。いくつかのデータベース抽象化レイヤが、PHP4でも提供されています。古くはdbx(PHPに付属)、もっとも有名なものはPEAR::DBでしょうか。そのほかにも、MDB、MDB2、DB_DataObjectなどがあります。それぞれの抽象化の度合と実行速度を図1に相対的に示し、特徴を並べてみましょう。

データベース抽象化レイヤの位置付け
図1:データベース抽象化レイヤの位置付け


1   2  次のページ



著者プロフィール
著者:岩切洋一
「まるごとPHP!Vol.1(インプレス刊)」にて本記事「PDOデータベース抽象化レイヤクラス」の執筆や、「WEB+DB PRESS Vol.18(技術評論社刊)」にて「PEAR実践入門 第4章 使ってみよう!作ってみようPECL」の執筆などを行う。


INDEX
Part4:PDO(PHP Data Object)データベース抽象化レイヤクラス(1)
PDOのコンセプト
  PHPデータベース抽象化レイヤの変遷(2)