[[PEAR::DB>PEAR/DB]]にはこれ以上となくお世話になっている。[[PEAR::DB>PEAR/DB]]はその進化・多様化に追いついていない。(私的にはそうでもないのだが。その重さを軽減するために登場したのが[[PEAR::MDB>PEAR/MDB]]。リファクタリングしてソースコードがすっきり。PostgreSQLで使う以外は[[PEAR::MDB>PEAR/MDB]]の方が速い(らしい)。問題なのは[[PEAR::MDB>PEAR/MDB]]はすでに開発が終了してしまったことだ。そこで登場したのがPEAR::MDB2。PEAR::MDB2側に吸収された。ファイルは細かく分割されている。それぞれを別パッケージとして開発している。利用者はPEAR::MDB2とは別に使用するデータベースに応じたパッケージをインストールする。ModuleとはPEAR::MDB2の拡張機能のことだ。利用者はモジュールをロードして機能を拡張することになる。PEAR::MDB2に置き換えるときはいくつか注意が必要だ。singletonパターンも装備している。こっちを利用する方が良いだろう。[[autoCommit>PEAR/DB/autoCommit]]メソッドは削除されている。begenTransactionメソッドを利用する。その際、transactionオプションを有効にしておく必要がある。[[quoteSmart>PEAR/DB/quoteSmart]]メソッドは削除されている。quoteメソッドを利用する。getColなどはデフォルトで存在しない。利用する際はExtendedモジュールをロードしておく必要がある。私は使わないのだがgetAssocの挙動はPEAR::DBとはかなり異なるようだ。