【十天精品課堂系列】 主講:李炎恢
學(xué)習(xí)要點:
1.查詢規(guī)則
2.更多查詢
本節(jié)課我們來了解一下數(shù)據(jù)庫連貫操作的鏈?zhǔn)讲樵兘抵约耙恍┎僮魃系膯栴}熊榛。
一. 查詢規(guī)則
- 前面課程中我們通過指向符號“->”多次連續(xù)調(diào)用方法稱為:鏈?zhǔn)讲樵儯?/li>
- 當(dāng) Db::name('user')時瓤摧,返回查詢對象(Query)素标,即可連綴數(shù)據(jù)庫對應(yīng)的方法;
- 而每次執(zhí)行一個數(shù)據(jù)庫查詢方法時膀懈,比如 where(),還將返回查詢對象(Query)器赞;
- 只要還是數(shù)據(jù)庫對象垢袱,那么就可以一直使用指向符號進行鏈?zhǔn)讲樵儯?/li>
- 再利用 find()、select()等方法返回數(shù)組(Array)或數(shù)據(jù)集對象(Colletion)港柜;
- 而 find()和 select()是結(jié)果查詢方法(放在最后)请契,并不是鏈?zhǔn)讲樵兎椒ǎ?br> Db::name('user')->where('id', 27)->order('id', 'desc')->find()
- 除了查詢方法可以使用鏈?zhǔn)竭B貫操作,CURD 操作也可以使用(后續(xù)課程研究)夏醉;
- 那么爽锥,有多少種類似 where()的鏈?zhǔn)讲僮鞣椒兀看蜷_手冊瞄一下畔柔。氯夷。。
二. 更多查詢
- 如果多次使用數(shù)據(jù)庫查詢靶擦,那么每次靜態(tài)創(chuàng)建都會生成一個實例腮考,造成浪費雇毫;
- 我們可以把對象實例保存下來,再進行反復(fù)調(diào)用即可踩蔚;
$userQuery = Db::name('user');
$dataFind = $userQuery->where('id', 27)->find();
$dataSelect = $userQuery->select();
- 當(dāng)同一個對象實例第二次查詢后棚放,會保留第一次查詢的值;
$data1 = $userQuery->order('id', 'desc')->select();
$data2 = $userQuery->select();
return Db::getLastSql();
SELECT * FROM `tp_user` ORDER BY `id` DESC
- 使用 removeOption()方法馅闽,可以清理掉上一次查詢保留的值飘蚯;
$userQuery->removeOption('where')->select();