3-3-2
執行自訂查詢語法 select()
select($select_col = '*', $where_item = [], $single = false, $key = '', $tpl_tag = ''):array
tadtools >= 3.39
比 find() 更彈性的查詢語法,可以自訂抓取欄位,或者自訂SQL語法,會回傳陣列,亦可自動送標籤到樣板。
$select_col:(預設為 *)欲搜尋的欄位
- 可以是字串(較為彈性或自由),如:
'`id`, `title`, `name`',或 '`title`, sum(`amount`)'
- 亦可是陣列(較為簡潔),如:
['id', 'title', 'name'],或 ['title', 'sum'=>'amount']
$where_item:where的篩選陣列或字串
- 可以是字串(較為彈性或自由,需自行加上
where),如:`where enable`='1' and date > '2020-06-30' gorup by `title` order by `sort`
- 亦可是陣列(較為簡潔,但僅支援
and及=),如:['enable'=>1, date => '2020-06-30'],會變成:where `enable`='1' and date='2020-06-30'。
- 若是遇到關鍵字
uid,且沒有設定其值,如['uid']那預設會抓取目前登入者的uid編號為值,亦即:where `uid`='1'之意(假設目前登入者編號為1的話)
$single:(預設為false)是否使用單筆模式。
- 一般而言都是多筆資料的模式,會傳回如:
$arr[0][id]、$arr[0][title]、$arr[1][id]、$arr[1][title]類似這樣的陣列。
- 若是單筆模式,那就只會傳回一筆,當確定您的資料只有一筆時,可以設為
true,會傳會比較簡潔的$arr[id]、$arr[title]
$key:設定用來作為結果陣列索引的欄位名稱(僅在多筆模式有效)
- 若沒設,那就是預設的從 0 開始遞增
- 若有設,請設定欄位名稱,例如:
id,如此,變會將id編號作為陣列索引(該執行語句需包含該欄位的值才行)
$tpl_tag:欲送到樣板的標籤名稱
- 如:
data,那麼就有<{$data.0.id}>、<{$data.0.title}>、<{$data.1.id}>、<{$data.1.title}>等標籤可用,若是single模式,則是<{$data.id}>、<{$data.title}>等標籤可用
- 若是沒設那就沒有樣板標籤,僅傳回結果陣列。