Daomancy
DaomancyRecordクラスのプロパティ値をもとにSQLを生成し、データを取得するためのクラスです。
テーブルの指定、検索条件の設定、データの取得までをすべて一行で書くことが可能です。
メソッド
__construct
new Daomancy( PDO pdo );
Daomancyオブジェクトを生成します。
引数にはPDOオブジェクトを指定します。
_
Daomancy Daomancy::_( PDO pdo );
staticファクトリメソッドです。newと書くより簡潔に書くことができます。
select
Daomancy Daomancy::select( PDO pdo );
_のエイリアスです。
from
Daomancy Daomancy->from( string class [ , string as [ , boolean fetch ] ] );
SQLのFROM句に該当します。取得するテーブルの定義が書かれたDaomancyRecordクラスを指定します。
注意) 取得するカラムの指定はできません。指定したDaomancyRecordクラスに記述されたカラムをすべて取得します。
取得するカラムを制限したい場合は、別途専用のDaomancyRecordクラスを作成する必要があります。
classにはクラス名を指定します。
asには、後でWHEREなどを指定する場合に使用するテーブルの別名を指定します。ここで指定したテーブルの別名は、以後on、whereなどで使用するほか、データ取得後のDaomancyRecordRackオブジェクトのプロパティ名としても使用されます。
省略した場合、
テーブル名が指定されます。
fetchをtrueにした場合、このテーブルからデータを取得します。省略した場合trueになります。取得条件のみにテーブルを使用する場合などデータの取得が必要ない場合は、falseを指定してください。
結合条件は、onメソッドで指定します。
join
Daomancy Daomancy->join( string class [ , string as [ , boolean fetch ] ] );
SQLのJOIN句に該当します。
引数はfromメソッドと同様です。
leftJoin
Daomancy Daomancy->leftJoin( string class [ , string as [ , boolean fetch ] ] );
SQLのLEFT OUTER JOIN句に該当します。
引数はfromメソッドと同様です。
rightJoin
Daomancy Daomancy->rightJoin( string class [ , string as [ , boolean fetch ] ] );
SQLのRIGHT OUTER JOIN句に該当します。
引数はfromメソッドと同様です。
on
Daomancy Daomancy->on( string on );
直近のjoin、leftJoin、rightJoinで指定されたテーブルに、結合条件を指定します。
引数には、from、join、leftJoin、rightJoinで設定したテーブルエイリアス名を使用します。
where
Daomancy Daomancy->where( mixed where [ , array params ] );
where句を指定します。
第一引数には、文字列かWheremancyオブジェクトを指定します。
文字列を指定した場合、プレースホルダ「?」にわたすパラメータを第二引数に指定します。
注意) 文字列指定の場合、第二引数に渡されたパラメータがnullもしくは空配列のときはこのクエリ自体を生成しません。これは、ビジネスロジックからわずらわしいif文をとりのぞくための仕様です。(and_、or_も同様です)
パラメータが不要なクエリを生成する場合はWheremancyLiteralを使用してください。
第一引数がWheremancyオブジェクトの場合、生成されるSQL文の前後には適切にカッコ()が付加されます。
and_
Daomancy Daomancy->and_( mixed where [ , array params ] );
直近のwhereメソッドに続くAND句を設定します。
まだwhereメソッドがコールされていない場合、直近のjoin、leftJoin、rightJoinのon句に適用されます。この場合、Wheremancyオブジェクトによる指定はできません。
WHERE句に適用される場合、引数の指定はwhereメソッドと同様です。
注意) 'and'がPHPの予約語のため、メソッド名の最後にアンダーライン'_'がつきます。
or_
Daomancy Daomancy->or_( mixed where [ , array params ] );
直近のwhereメソッドに続くOR句を設定します。
引数の指定はwhereメソッドと同様です。
注意) 'or'がPHPの予約語のため、メソッド名の最後にアンダーライン'_'がつきます。
orderBy
Daomancy Daomancy->orderBy( string orderBy );
SQLのorderBy句を指定します。
limit
Daomancy Daomancy->limit( int limit );
limitを指定します。引数は数値です。
offset
Daomancy Daomancy->offset( int offset );
offsetを指定します。引数は数値です。
execute
Daomancy Daomancy->execute();
SQLを生成し、実行します。
実行結果は、fetchおよびfetchAllで取得します。
このメソッドを省略しても、fetch、fetchAllは機能します。
fetch
DaomancyRecordRack Daomancy->fetch();
executeで生成した結果セットから1行取得します。
結果セットがまだ生成されていない場合、内部でexeuteを実行します。
返り値は、from、joinなどで指定した別名(as)をプロパティ名としてオブジェクトを保持するDaomancyRecordRackオブジェクトです。
例えば下の例の場合、$row->cにCustomerDAOオブジェクトが設定されたDaomancyRecordRackオブジェクトが返されます。
$row = Daomancy::_($dbh)
->from('CustomerDAO' , 'c')
->fetch();
fetchAll
array(DaomancyRecordRack) Daomancy->fetchAll();
結果セットから全行を配列で取得します。
結果セットがまだ生成されていない場合、内部でexeuteを実行します。
ただし、fetchとは違い、fetchAll実行後は結果セットが破棄されます。
release
Daomancy Daomancy->release();
結果セットを破棄します。
toSQL
string Daomancy->toSQL();
SQLを生成します。
getParams
array(string) Daomancy->getParams();
設定されているすべてのSQLパラメータ(SQL中のプレースホルダ「?」に渡される値)を適用順に配列で返します。
debug
string Daomancy->debug();
SQLのプレースホルダにパラメータを埋めこんだ文字列を返します。
このメソッドが返す文字列はデバッグ用であり、実際にそのまま実行されるわけではありません。