- メリット
- SQLを隠蔽し、クラスを扱う感覚で操作できる
DBのスキーマ定義を自動的に取得して、そのDBをハンドリングする専用のオブジェクトを生成
- デメリット
- SQLより表現が劣る
- 複雑なクエリーを作成しようとした場合にわかりにくい
- DBに変更を行った場合、対応するクラスの変更も必要
サンプル †
- example.iniをコピー
$ cp /usr/share/pear/docs/DB_DataObject/docs/example.ini test.ini
- test.ini を編集し、解析先DBの情報に変更する
database=pgsql://postgres@127.0.0.1/test
schema_location=/var/www/html/test
class_location=/var/www/html/test
db_driver=DB
+createTables.php で既存のDBを解析し、クラスを作成する
$ php -q /usr/share/pear/DB/DataObject/createTables.php /var/www/html/test/test.ini
- サンプルソース
<?
require_once('DB/DataObject.php');
$options = &PEAR::getStaticProperty('DB_DataObject','options');
$options = array(
'database'=>'pgsql://postgres@127.0.0.1/test',
'schema_location' => '/var/www/html/test',
'class_location' => '/var/www/html/test',
'class_prefix' => 'DataObjects_',
'debug'=>0
);
$o = DB_DataObject::factory('public.ads_master');
$o->find();
while($o->fetch()){
echo "{$o->ads_id} | {$o->ads}<br/>\n";
}
?>
関連リンク †
|
|