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}>
等標籤可用
- 若是沒設那就沒有樣板標籤,僅傳回結果陣列。