#freeze
#setlinebreak(on)
* MDB2 真・データベース制御クラス [#z179f3f5]

[[mysqliをMDB2で利用する>PEAR/MDB2/mysqli]]

#htmlinsert(googleAdsense.html)
#ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)

** 概要 [#o3e15e0c]

なるほど。
これはいいね。

(ノ・・)ン。。。。。。(((●コロコロッ

[[PEAR::DB>PEAR/DB]]にはこれ以上となくお世話になっている。
だが、データベースがどんどん進化・多様化してきている中、
[[PEAR::DB>PEAR/DB]]はその進化・多様化に追いついていない。
そして重いと評判だ。
(私的にはそうでもないのだが。)

その重さを軽減するために登場したのが[[PEAR::MDB>PEAR/MDB]]。
リファクタリングしてソースコードがすっきり。
非常に見やすい。
PostgreSQLで使う以外は[[PEAR::MDB>PEAR/MDB]]の方が速い(らしい)。
ただ問題なのは[[PEAR::MDB>PEAR/MDB]]はすでに開発が終了してしまったことだ。

そこで登場したのがPEAR::MDB2。
元々は[[PEAR::MDB>PEAR/MDB]]のPHP5版として登場したのだが、
PEAR::MDB2側に吸収された。
新たにDriver, Moduleという概念が追加され、
ファイルは細かく分割されている。
PEAR::DB_DataObjectのようにテーブル定義をファイルに保存しておき、
それをオブジェクトとして利用することが出来る

DriverとはPECL::PDOのように、
データベースの種類ごとにパッケージ化し、
それぞれを別パッケージとして開発している。
利用者はPEAR::MDB2とは別に使用するデータベースに応じたパッケージをインストールする。
例:
 MySQLの時
 pear install mdb2
 pear install MDB2_Driver_mysql
 PostgreSQLの時
 pear install mdb2
 pear install MDB2_Driver_pgsql

ModuleとはPEAR::MDB2の拡張機能のことだ。
利用者はモジュールをロードして機能を拡張することになる。
例:
 Extended
 $dbObj->loadModule('Extended');


** PEAR::DBとPEAR::MDB2の相違点 [#ke17563c]
既存のシステムで[[PEAR::DB>PEAR/DB]]を使用していて、
PEAR::MDB2に置き換えるときはいくつか注意が必要だ。

デフォルトでFactory Method(connectも)パターンの他に、
singletonパターンも装備している。
自前でsingletonパターンを作っていた人は、
こっちを利用する方が良いだろう。

[[autoCommit>PEAR/DB/autoCommit]]メソッドは削除されている。
トランザクションを利用するときは
begenTransactionメソッドを利用する。
その際、transactionオプションを有効にしておく必要がある。
 $dbObj = & MDB2::singleton($dsn, array('use_transactions'=>true));
 $dbObj->beginTransaction();    // transaction start

[[quoteSmart>PEAR/DB/quoteSmart]]メソッドは削除されている。
quoteを利用する場合は
quoteメソッドを利用する。



[[PEAR::DB>PEAR/DB]]のgetAll, getAssoc, getOne, getColなどはデフォルトで存在しない。
これらはExtendedモジュールに入っているので、
利用する際はExtendedモジュールをロードしておく必要がある。

私は使わないのだがgetAssocの挙動はPEAR::DBとはかなり異なるようだ。
-MDB2用のDBMSドライバの名前はMDB2_Driver_xxxxxx ですね。 -- [[nobby]] &new{2006-05-06 07:13:38 (土)};
-ほんとですね。修正しておきます。 -- [[dozo]] &new{2006-05-06 10:59:21 (土)};
-dddd --  &new{2006-05-18 18:01:54 (木)};

#comment


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較