表達式是 SQL 語句的條件
表達式不分大小寫
表達式寫在 where 里
表達式 | 含義 | 查詢方法 |
---|---|---|
= | 等于 | |
<> | 不等于 | |
> | 大于 | |
>= | 大于等于 | |
< | 小于 | |
<= | 小于等于 | |
[NOT] LIKE | 模糊查詢 | whereLike/whereNotLike |
[NOT] BETWEEN | (不在)區(qū)間查詢 | whereBetween/whereNotBetween |
[NOT] IN | (不在)IN 查詢 | whereIn/whereNotIn |
[NOT] NULL | 查詢字段是否(不)是 NULL | whereNull/whereNotNull |
表達式
where方法在鏈式操作方法里面是最常用的方法,可以完成包括普通查詢、表達式查詢、快捷查詢、區(qū)間查詢、組合查詢在內(nèi)的條件查詢操作
|LIKE|模糊查詢|whereLike/whereNotLike|
|[NOT] LIKE|模糊查詢|whereLike/whereNotLike|
總而言之,加上not的就是取反,不加not的就是正式
聚合查詢
聚合方法查詢后:沒有數(shù)據(jù),返回 0,聚合查詢可以配合查詢條件
方法 | 功能 |
---|---|
count | 統(tǒng)計數(shù)量,參數(shù)是要統(tǒng)計的字段名(可選) |
max | 獲取最大值,參數(shù)是要統(tǒng)計的字段名(必須) |
min | 獲取最小值,參數(shù)是要統(tǒng)計的字段名(必須) |
avg | 獲取平均值,參數(shù)是要統(tǒng)計的字段名(必須) |
sum | 獲取總數(shù),參數(shù)是要統(tǒng)計的字段名(必須) |
|count|統(tǒng)計數(shù)量,參數(shù)是要統(tǒng)計的字段名(可選)|
|max|獲取最大值,參數(shù)是要統(tǒng)計的字段名(必須)|
|avg|獲取平均值,參數(shù)是要統(tǒng)計的字段名(必須)|
|sum|獲取總數(shù),參數(shù)是要統(tǒng)計的字段名(必須)|
join* 用于對查詢的 join 支持 字符串和數(shù)組
如果用join多表查詢,不限制兩個表的id 或者一個表的id,也就是全字段查詢,則id會重復,所以下面選擇性的查詢另外一個表的字段,id則不會重復
query 方法:查詢
execute 方法:添加和修改
getLastsql 調(diào)試執(zhí)行的 SQL 語句
fetchSql 調(diào)試執(zhí)行的 SQL 語句,而不執(zhí)行
isEmpty 是否為空
toArray 轉換為數(shù)組
InnoDB引擎支持事務處理,MyISAM不支持事務處理
這兩種引擎在表里設置
ThinkPHP3.0-5.1 事務開啟
其中時間設置錯誤,會自動回滾到原點,并不會插入數(shù)據(jù)
ThinkPHP6.0 事務開啟
transaction 方法操作數(shù)據(jù)庫事務,當閉包中的代碼發(fā)生異常會自動回滾
Db::transaction 采用閉包的方式進行事物回滾,只要里面出錯就直接回滾到原點
paginate 內(nèi)置了分頁實現(xiàn),要給數(shù)據(jù)添加分頁輸出功能變得非常簡單
raw 不使用(默認)轉義
render 獲取分頁顯示
total 獲取總數(shù)量
public function index() { //查詢文章和導航相對應綁定的值 $id = Request::get('id',0); //查詢搜索值 $t = Request::get('t',""); //查詢翻頁值 $p = Request::get('page',1); if (isset($id) && !empty($id)) { //查詢分類文章 $boke = Db::table('boke a') ->field('a.*,c.name') ->join(['cat' => 'c'],'a.cat = c.id') ->where("cat",$id) ->page($p,5) ->order('date DESC') ->select(); }else if (isset($t) && !empty($t)){ //查詢搜索文章 $boke = Db::table('boke a') ->field('a.*,c.name') ->join(['cat' => 'c'],'a.cat = c.id') ->where('title',"like","%$t%") ->page($p,5) ->order('date DESC') ->select(); }else { //查詢?nèi)课恼?nbsp; $boke = Db::table('boke a') ->field('a.*,c.name') ->join(['cat' => 'c'],'a.cat = c.id') ->page($p,5) ->order('date DESC') ->select(); } //分頁模板 $page = Db::table('boke') ->where('status',1) ->order('date DESC') ->paginate(5); //查詢導航字段 $cat = Db::table('cat') ->where('status',1) ->order('sort DESC') ->select(); //查詢熱門文章 $TopArticle = Db::table('boke') ->where('status',1) ->order('num DESC') ->limit(3) ->select(); View::assign([ 'boke' => $boke, 'cat' => $cat, 't'=>$t, 'TopArticle' => $TopArticle, 'page' => $page, ]); return View::fetch(); }
<body class="home blog custom-background custom-font-enabled single-author"> <div id="page" class="hfeed site"> <header id="masthead" class="site-header" role="banner"> <hgroup> <h1 class="site-title"> <a href="/" title="JiaJieChen個人博客" rel="home">JiaJieChen個人博客</a> </h1> <h2 class="site-description">同學們大家好。</h2> </hgroup> <nav id="site-navigation" class="main-navigation" role="navigation"> <ul class="nav-menu"> <li> <a href="/index.html">首頁</a> </li> {foreach $cat as $cat_v} <li> <a href="?id={$cat_v['id']}">{$cat_v['name']}</a> </li> {/foreach} </ul> </nav> </header> <div class="Puax" > <ul> <li class="startX" ><a href="#asc">升序</a></li> <li class="endX" style="display: none;"><a href="#desc">降序</a></li> </ul> </div> <div id="main" class="wrapper"> <div id="primary" class="site-content"> <div id="content" role="main"> {foreach($boke as $boke_v)} <div id="content" role="main"> <article> <header class="entry-header"> <h1 class="entry-title"> <a href="/details.html" title="構建Nginx和PHP鏡像" rel="bookmark">{$boke_v['title']}</a> </h1> </header> <div class="entry-content">{$boke_v['content']}</div> <footer class="entry-meta"> 發(fā)布于 <a href="/index.html?time=2020-10-02" title="2020-10-02" rel="bookmark"> <time class="entry-date" datetime="2020-10-02">{$boke_v['date']}</time> </a >。 屬于 <a href="/index.html?cate=4" title="查看 Linux中的全部文章" rel="category">{$boke_v['name']}</a>分類 </footer> </article> </div> {/foreach} </div> <div class="page"> <nav> <ul class="pagination"> {$page|raw} </ul> </nav> </div> </div> <div id="secondary" class="widget-area" role="complementary"> <aside id="search-2" class="widget widget_search"> <form role="search" id="searchform" action="" method="POST"> <div> <label class="screen-reader-text" for="t">搜索:</label> <input placeholder="{$t}" type="text" class="no-border" name="keywords" id="t" /> <input type="submit" class="btn btn-default" id="searchsubmit" value="搜索" /> </div> </form> <script type="text/javascript"> $(function () { $("#searchsubmit").click(function () { if ($("#t").val() != "") { location.href = "/index.html?t=" + $("#t").val(); } return false; }); }); </script> </aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h3 class="widget-title">熱門文章</h3> <ul> {foreach $TopArticle as $TopArticle_k => $TopArticle_v } <li> <font style="color: #7a7a7a">{$TopArticle_k+1}</font> <a href="/details.html?id=20" title="{$TopArticle_v['title']}">{$TopArticle_v['title']}</a> </li> {/foreach} </ul> </aside> </div> </div> <footer id="colophon" role="contentinfo"> <div class="site-info"> <span>友情鏈接:</span> <a href="http://ipnx.cn" target="_blank">PHP中文網(wǎng)</a> </div> </footer> <footer role="contentinfo" style="margin-top: 0"> <div class="site-info" style="text-align: center"> <span> <a href="https://beian.miit.gov.cn" target="_blank">蘇ICP備2020058653號-1</a> </span> </div> </footer> </div> <script> $('.startX').click(function () { $('.startX').css('display','none'); $('.endX').css('display','block'); }) $('.endX').click(function () { $('.endX').css('display','none'); $('.startX').css('display','block'); }) </script> </body>
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號