第3弾/mosKingyoyaDBTable
金魚屋開発支援シリーズ第3弾。
手抜き屋のためのmosDBTable 拡張コンポーネント。
はじめに
NAME
金魚屋 DBTable コンポーネント - com_kingyoya_dbtable
Latest Version
HISTORY
2008-04-07 Version 1.0.0
公開
動作環境
- Joomla 1.0.x
目的
- なんかもー色々めんどくさくなったので、mosDBTable を拡張しちまえってことです。
- 単純なクエリで複数レコードを取得できるよう拡張
- JOIN ムリ。Joomla! ですから。
NOTICE
USAGE
/** * 通常と同様にクラス定義 */ class mosMyTable extends mosKingyoyaDBTable { var $key1; var $key2; var $key3; /** * コンストラクタ * mosKingyoyaAbstract を利用するため、key は自動的に id になる。 */ function mosMyTable(&$db) { parent::mosKingyoyaDBTable('#__my_table', $db); } } /* * リストデータを取得 */ $row = nwe mosMyTable($database); $row->key2 = 'value2'; // 検索条件。key2 の値が 'value2' のデータを対象 $row->appendOrderBy('key1', false); // key1 で降順に並び替え $row->appendOrderBy('id'); // key1 の後に id で昇順に並び替え $result = $row->find(); // テーブルからデータを検索 if (!$result) { // 検索でエラー $errorMessage = $row->getError(); die($errorMessage); } while ($row->hasNext()) { // 結果をひとつずつ取得 $result = $row->next(); if (!$result) { // 取得に失敗 $errorMessage = $row->getError(); die($errorMessage); } $id = $result->id; // 連番のキー $key1 = $result->key1; $key2 = $result->key2; $key3 = $result->key3; $created = $result->created('Y-m-d H:i:s'); $created_by = $result->created_by('name'); $modified = $result->created_by('Y-m-d H:i:s'); $modified_by = $result->modified_by('name'); } while ($row->next()) { // 結果をひとつずつ取得(簡易版) }
CLASS 概説
load()
boolean load(int id)
check()
boolean check()
store()
boolean store()
getError()
boolean store()
reset()
boolean store()
find()
boolean find([ int offset [ , int limit ] ])
テーブルのレコードを検索して複数データを取得する。
カラムと連動したプロパティに設定されている値は、そのまま一致の検索条件に利用される。
appendWhere()
boolean appendWhere(string where)
find() のために自前の検索条件を追加する。
プロパティに値があったり複数の検索条件が設定されていれば、それらはすべて AND でつなげてクエリが作成される。
$rows->appendWhere('created <= UNIX_TIMESTAMP()'); $rows->appendWhere('modified >= UNIX_TIMESTAMP()');
上記で下記のSQL
WHERE created <= UNIX_TIMESTAMP() AND modified >= UNIX_TIMESTAMP()
appendWhereLike()
boolean appendWhere(string key, string value)
appendWhere() でLIKE 条件を追加する代替。
appendWhereLike('key1', '%VALUE%')
は
appendWhere("key1 LIKE '%VALUE%')
と同等。
appendOrderBy()
boolean appendOrderBy(string key [, boolean asc = true ])
find() のために並び替え条件を追加する。
asc が真の場合は昇順、偽の場合は降順となる。
複数指定した場合、指定した順がそのまま優先順位となる。
count()
int count()
find() の結果、取得したレコード数を返す。
clone()
object & clone()
オブジェクトのクローンを返す。