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のプレースホルダにパラメータを埋めこんだ文字列を返します。
 このメソッドが返す文字列はデバッグ用であり、実際にそのまま実行されるわけではありません。