連貫入門(mén)
連貫操作使用起來(lái)非常簡(jiǎn)單盒卸,比如查找到id為1合武,2芹敌,3,4中按照創(chuàng)建時(shí)間的倒敘的前兩位伸头。
//示例
$user = M(' User ');
var_dump($user->where( ' id>1 ' )->order( ' date DESC ')->limit(2)->select());
PS:這里的where、order和limit方法都是連貫操作方法舷蟀、所以他們都能返回$user本身熊锭、可以呼喚位置、而select方法不是連貫方法雪侥、需要放在最后碗殷,用以顯示數(shù)據(jù)集。
//數(shù)組操作
$user = M('User');
var_dump($user->select(array('where'=>'id in (1,2,3,4)' , 'limit'=>'2' , 'order'=>'date DESC')));
//CURD處理(數(shù)據(jù)庫(kù)的增刪改查)速缨,CURD會(huì)在專(zhuān)門(mén)章節(jié)講解
$user = M('User');
var_dump($user->where('id=1')-finde());//不管什么情況只會(huì)查出一條數(shù)據(jù)锌妻。
var_dump($user->where('id=4')-delete());
系統(tǒng)支持的連貫方法
where 用于查詢(xún)或者更新條件的定義 字符串 數(shù)組和對(duì)象
table 用于定義要操作的數(shù)據(jù)表名稱(chēng) 字符串和數(shù)組
alias 用于給當(dāng)前數(shù)據(jù)表定義別名 字符串
data 用于新增或者更新數(shù)據(jù)之前的數(shù)據(jù)對(duì)象賦值 數(shù)組和對(duì)象
field 用于定義要查詢(xún)的字段 字符串和數(shù)組
order 用于對(duì)結(jié)果排序 字符串和數(shù)組
limit 用于限制查詢(xún)結(jié)果數(shù)量 字符串和數(shù)字
froup 用于對(duì)查詢(xún)的group支持 字符串
having 用于對(duì)查詢(xún)的having 字符串
join* 用于查詢(xún)的=====
union* ======
distinct 用于查詢(xún)的distinct支持 布爾值
lock 用于數(shù)據(jù)庫(kù)的鎖機(jī)制 布爾值
cache 用于查詢(xún)緩存 支持多個(gè)參數(shù)
relation 用于關(guān)聯(lián)查詢(xún)(需要關(guān)聯(lián)模型支持) 字符串
result 用于返回?cái)?shù)據(jù)轉(zhuǎn)換 字符串
validate 用于數(shù)據(jù)自動(dòng)驗(yàn)證 數(shù)組
auto 用于數(shù)據(jù)自動(dòng)完成 數(shù)組
filter 用于數(shù)據(jù)過(guò)濾 字符串
scope* 用于命名范圍 字符串、數(shù)組
bind* 用于數(shù)據(jù)綁定操作 數(shù)組或多個(gè)參數(shù)
token 用于令牌驗(yàn)證 布爾值
comment 用于SQL注釋 字符串
PS:帶*好的可以多次調(diào)用旬牲。
連貫方法
1仿粹、where
where方法支持字符串條件搁吓、數(shù)組條件(推薦用法)和多次調(diào)用
//字符串方式
$user = M('User');
var_dump($user->where(' id=1 ')->select());
//索引數(shù)組方式
$user = M('User');
$map['id'] = 1;
var_dump($user->where($map)-select());
//多次調(diào)用方式
$user = M('User');
$map[' id '] = array('eq' , 1);
var_dump($user->where($map)->where(‘user = "蠟筆小新"’)->select());
2、order
order用于對(duì)結(jié)果集排序
//倒敘
$user = M('User');
$map['id'] = array(' eq ' , 1);
var_dump($user->order(‘id desc’)-select());
PS:先按id倒敘吭历,再按email倒敘
//數(shù)組形式防止字段和mysql關(guān)鍵字沖突
$user = M('User');
$map[' id'] = array('eq' ,1);
var_dump($user->order(array('id'=>'DESC'))->select());
3堕仔、feild
feild方法可以返回或操作字段,可以用于查詢(xún)和寫(xiě)入操作
//只是顯示id和user兩個(gè)字段
$user = M('User');
var_dump($user->field('id , user')->select());
//使用SQL函數(shù)和別名
$user = M('User');
var_dump($user->field('SUM(id) as count , user')->select());//查出id的總和 變量名為count
//使用數(shù)組參數(shù)結(jié)合SQL函數(shù)
$user = M('User');
var_dump($user->field(arrat( ' ' id ' LEFT(user,3) ' =>' left_user '))->select());//別名可以用AS 也可以用=>
//獲取所有字段
$user = M('User');
var_dump($user->field()->select());
//用于寫(xiě)入
$user = M('User');
$user->field('user , email')->create();
4晌区、limit
limit方法主要用于指定查詢(xún)和操作的數(shù)量
//限制結(jié)果集數(shù)量
$user = M('User');
var_dump($user->limit(2)->select());
//分頁(yè)查詢(xún)
$user = M('User');
var_dump($user->limit(0,2)-select());//從1開(kāi)始 2是數(shù)量
4摩骨、page
page方法完全用于分頁(yè)查詢(xún)
//page分頁(yè)
$user = M('User');
var_dump($user->page(1,2)->select());//從一開(kāi)始 2是條數(shù)
5、table
table方法用于數(shù)據(jù)表操作朗若,主要是切換數(shù)據(jù)表或多表操作
//切換數(shù)據(jù)表
$user->M('User');
var_dump($user->table(think_info)->select());//從user表切換到info表
//多表查詢(xún) 使用數(shù)組形式避免關(guān)鍵字沖突
$user = M('User');
var_dump($user->field('a.id , b.id')-table(array('think_user'=>'a' , 'think_inf'=>'b'))->select();
6恼五、alias
alias用于設(shè)置數(shù)據(jù)表別名
//設(shè)置別名
$user = M('User');
var_dump($user->alias('a')->select());//有助于雙表查詢(xún)用
7、group方法通常用于對(duì)結(jié)合函數(shù)統(tǒng)計(jì)的結(jié)果集進(jìn)行分組
//分組統(tǒng)計(jì)
$user = M('User');
var_dump($user->field('user,max(id)')->group('id')->select());
8哭懈、having方法一般用于配合group方法從分組的結(jié)果中再篩選數(shù)據(jù)灾馒。
//分組統(tǒng)計(jì)結(jié)合having
$user = M('User');
var_dump($user->field('user , max(id)')->group('id')->having('id>2')->select());
9、comment
comment方法用于對(duì)SQL語(yǔ)句進(jìn)行注釋
//SQL注釋
$user = M('User');
var_dump($user->comment('所有用戶(hù)')->select());
10遣总、join
join方法用于多表的鏈接查詢(xún)
//JOIN多表關(guān)聯(lián)睬罗,默認(rèn)是INNER IOIN
$user = M('User');
var_dump($user->join('think_user ON think_info.id = think_user.id')-select());
12、distinct
distinct方法用于返回唯一不同的值
//返回不重復(fù)的列
$user = M('User');
var_dump($user->distinct(true)->field('user')->select());
13旭斥、cache
cache用于檢查緩存操作
//查詢(xún)緩存傅物,第二次讀取緩存內(nèi)容
$user = M('User');
var_dump($user->cache(true)->select());
PS:第一次查詢(xún)數(shù)據(jù)庫(kù),第二次查詢(xún)相同的內(nèi)容直接調(diào)用緩存董饰,不用再查詢(xún)數(shù)據(jù)庫(kù)。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者