FuelPHP

FuelPHP1.6、クエリビルダ一覧 その2

FuelPHP1.6、クエリビルダ一覧 その1

FuelPHP1.6、クエリビルダ一覧 その2

FuelPHP1.6、クエリビルダ一覧 その3

FuelPHP1.6、クエリビルダ一覧 その4

検索関連は
1.データの取得項目(全項目を取得とかこの項目のみを取得とか)
2.データの取得形式(文字列で取得とか配列で取得とか)
3.データの取得条件、他(where句とかorder by句とか)
を理解すれば大丈夫だと思うのですよね。
「3.」は覚えなくちゃいけないこと多そう。

まずは
1.データの取得項目(全項目を取得とかこの項目のみを取得とか)

■ 全項目取得:select()

$q = DB::select()->from('tbl_test01');
var_dump($q->execute());

 

■ 特定項目のみ取得:select('column01','column02')

$q = DB::select('pk_id','column_varchar01')->from('tbl_test01');
var_dump($q->execute());

 

■ 別名をつけて取得:select(array('column01','alias_name'))

$q = DB::select(array('pk_id','alias_name'))->from('tbl_test01');
var_dump($q->execute());

 

■ 複数項目を別名をつけて取得:select(array('column01','alias_name'), array('column02','alias_name2'))

$q = DB::select(array('pk_id','alias_name'), array('column_varchar01','alias_name2'))->from('tbl_test01');
var_dump($q->execute());

 

■ distinctで取得:->distinct(true)

$q = DB::select('column_varchar01')->from('tbl_test01')->distinct(true);
var_dump($q->execute());

 

■ group byしてdistinctで取得:->distinct(true)->group_by('column01')

$q = DB::select('column_int02', 'column_varchar01')->from('tbl_test01')->distinct(true)->group_by('column_int02');
var_dump($q->execute());

 

■ 合計を取得:select(DB::expr('SUM(column1) as alias_name'))

$q = DB::select(DB::expr('SUM(column_int02) as cnt'))->from('tbl_test01');
var_dump($q->execute());

 

■ 件数を取得:select(DB::expr('COUNT(*) as alias_name'))

$q = DB::select(DB::expr('COUNT(*) as cnt'))->from('tbl_test01');
var_dump($q->execute());

「DB::expr()」はエスケープを回避する関数です。
SUM()関数とかを使いたい場合は「DB::expr()」をかませば良いのですね。
てか「DB::expr()」使えばどうとでもなりそうですね。

試しに

$q = DB::select(DB::expr('pk_id, column_varchar01'))->from('tbl_test01');
var_dump($q->execute());

と書いたら「pk_id」と「column_varchar01」が取得できましたし

$q = DB::select(DB::expr('*'))->from('tbl_test01');
var_dump($q->execute());

と書いたら全項目取得できました。

……「DB::expr()」って、身も蓋も無い関数。便利だけど。


Warning: Undefined variable $postID in /home/foodheart/flashbuilder-job.com/public_html/wp-content/themes/stingerplus/single.php on line 87

-FuelPHP