Blogger Information
Blog 70
fans 4
comment 5
visits 103776
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:【ThinkPHP】=>数据库表达式:普通查询、表达式查询、快捷查询、区间查询、组合查询;原生mysql查询;事务操作 ;翻页功能
JiaJieChen
Original
1110 people have browsed it

PHP:【ThinkPHP】=>数据库表达式:普通查询、表达式查询、快捷查询、区间查询、组合查询;原生mysql查询;事务操作 ;翻页功能

一.数据库表达式

  • 表达式是 SQL 语句的条件

  • 表达式不分大小写

  • 表达式写在 where 里

表达式 含义 查询方法
= 等于
<> 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于
[NOT] LIKE 模糊查询 whereLike/whereNotLike
[NOT] BETWEEN (不在)区间查询 whereBetween/whereNotBetween
[NOT] IN (不在)IN 查询 whereIn/whereNotIn
[NOT] NULL 查询字段是否(不)是 NULL whereNull/whereNotNull
  1. 表达式
    where方法在链式操作方法里面是最常用的方法,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的条件查询操作

    • |LIKE|模糊查询|whereLike/whereNotLike|

    • |[NOT] LIKE|模糊查询|whereLike/whereNotLike|

总而言之,加上not的就是取反,不加not的就是正式

  • 聚合查询

    • 聚合方法查询后:没有数据,返回 0,聚合查询可以配合查询条件

方法 功能
count 统计数量,参数是要统计的字段名(可选)
max 获取最大值,参数是要统计的字段名(必须)
min 获取最小值,参数是要统计的字段名(必须)
avg 获取平均值,参数是要统计的字段名(必须)
sum 获取总数,参数是要统计的字段名(必须)
  • |count|统计数量,参数是要统计的字段名(可选)|

  • |max|获取最大值,参数是要统计的字段名(必须)|

  • |avg|获取平均值,参数是要统计的字段名(必须)|

  • |sum|获取总数,参数是要统计的字段名(必须)|

  • join* 用于对查询的 join 支持 字符串和数组

如果用join多表查询,不限制两个表的id 或者一个表的id,也就是全字段查询,则id会重复,所以下面选择性的查询另外一个表的字段,id则不会重复

二.原生 MySQL

  • query 方法:查询

  • execute 方法:添加和修改

  • getLastsql 调试执行的 SQL 语句

  • fetchSql 调试执行的 SQL 语句,而不执行

  • isEmpty 是否为空

  • toArray 转换为数组

三.thinkphp 事务操作

  • InnoDB引擎支持事务处理,MyISAM不支持事务处理

    • 这两种引擎在表里设置

  • ThinkPHP3.0-5.1 事务开启

    其中时间设置错误,会自动回滚到原点,并不会插入数据

  • ThinkPHP6.0 事务开启

    • transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚

      Db::transaction 采用闭包的方式进行事物回滚,只要里面出错就直接回滚到原点

四.模版分页

  • paginate 内置了分页实现,要给数据添加分页输出功能变得非常简单

    • raw 不使用(默认)转义

    • render 获取分页显示

    • total 获取总数量

五.完善博客内容,分类,热门文章,搜索,分页

controller 代码块

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 { //查询全部文章 $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(); }

HTML 代码块

 
{foreach($boke as $boke_v)}
{/foreach}
Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply withNews Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!