Top / PEAR / MDB2


 #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 (木)};
 -dddd -- [[dozo]] &new{2006-05-20 00:16:50 (土)};
 -Hello.   See you -- [[Aerosmith]] &new{2007-06-15 23:22:52 (金)};


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較