一、查询

//order支持使用数组对多个字段的排序,例如order(['order','id'=>'desc'])
//group方法只有一个参数,并且只能使用字符串。
//having方法只有一个参数,并且只能使用字符串
$map = [];
$map[] = ['u.store_id','=',0];
$map[] = ['u.reg_time','<',time()];
$map[] = ['u.user_rank','in',[0,9]]; $group = '';
$list = Db::name('users')
->alias('u')
->field('u.user_id,u.user_name,u.store_id')
->leftJoin('order_info oi','oi.user_id=u.user_id')
->where($map)
->limit(0,10)
->group($group)
->order('id', 'desc')
->select(); // 获取某个用户的积分
Db::name('users')->where('id',10)->value('score'); // 获取某个列的所有值
Db::name('users')->where('status',1)->column('name'); // 以id为索引
Db::name('users')->where('status',1)->column('name,age','id'); //获取用户数:
Db::name('users')->count(); //原生SQL查询 query方法
Db::query("select * from think_user where status=1"); //打印SQL
echo User::fetchSql()->find(1);

二、更新

Db::name('user')
->where('id', 1)
->update(['name' => 'thinkphp']); //原生sql执行修改、删除 execute方法
Db::execute("update think_user set name='thinkphp' where status=1");

三、删除

Db::name('user')
->where('id', 1)
->delete();

四、插入

//使用Db类的insert方法向数据库提交数据
$data = ['foo' => 'bar', 'bar' => 'foo'];
Db::name('user')->insert($data); //添加数据后如果需要返回新增数据的自增主键,可以使用insertGetId方法新增数据并返回主键值:
$userId = Db::name('user')->insertGetId($data); //添加多条数据
$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll($data);

五、接受参数、跳转、重定向、判断请求类型、ajax返回、显示页面

//判断请求类型
isGet isPost isAjax //接受参数
input('get.name','','htmlspecialchars'); // 获取get变量 并用htmlspecialchars函数过滤 //跳转、重定向
$this->success('新增成功', 'User/list');
$this->error('新增失败'); $this->redirect('News/category', ['cate_id' => 2], 302, ['data' => 'hello']); //ajax返回
$data = ['name' => 'thinkphp', 'status' => '1'];
return json($data); //显示页面
return view('home');
return $this->display('home');
return $this->fetch('home');

六、模板标签

1、Volist

//在模版定义如下,循环输出用户的编号和姓名:
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist} //输出循环变量:
{volist name="list" id="vo" key="k" }
{$k}.{$vo.name}
{/volist} //如果没有指定key属性的话,默认使用循环变量i,例如:
{volist name="list" id="vo" }
{$i}.{$vo.name}
{/volist} //如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:
{volist name="list" id="vo" }
{$key}.{$vo.name}
{/volist}

2、Foreach

{foreach $list as $key=>$vo }
{$vo.id}:{$vo.name}
{/foreach}

3、比较(eq或者 equal、neq 或者notequal、gt、egt、lt、elt、heq、nheq)

{eq name="name" value="value"}value{/eq}
//例如:
{eq name="name" value="value"}
相等
{else/}
不相等
{/eq}
//通常比较标签的值是一个字符串或者数字,如果需要使用变量,只需要在前面添加“$”标志: 当vo对象的属性等于$a就输出
{eq name="vo:name" value="$a"}{$vo.name}{/eq}

4、比较

//SWITCH标签
{switch 变量 }
{case value1 }输出内容1{/case}
{case value2}输出内容2{/case}
{default /}默认情况
{/switch} //使用示例:
{switch User.level}
{case 1}value1{/case}
{case 2}value2{/case}
{default /}default
{/switch} //IF标签
{if 表达式}value1
{elseif 表达式 /}value2
{else /}value3
{/if} //用法示例:
{if ( $name == 1) OR ( $name > 100) } value1
{elseif $name == 2 /}value2
{else /} value3
{/if}

5、范围(in、notin、between、notbetween)

{in name="id" value="1,2,3"}
id在范围内
{else/}
id不在范围内
{/in}

TP5快速入门的更多相关文章

  1. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  2. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  3. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  7. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. webpack资料,还需整理

    参考地址: https://github.com/ruanyf/webpack-demos#demo01-entry-file-source http://www.jianshu.com/p/4df9 ...

  2. 使用Jmeter进行压力测试结果偏差较大原因分析

    Apache软件基金会(ASF)是一家总部位于美国的非营利性慈善组织.ASF的所有产品都通过公共论坛的在线协作开发,并从美国境内的中央服务器分发.Jmeter是ASF的一款开源免费软件 ,在国内被很多 ...

  3. 一道值得思考的fork()面试题

    程序如下,判断输出多少个'_' ./a.out int main(){ ; i < ; ++i){ fork(); printf("_"); } } 熟悉fork的话,这里很 ...

  4. AspNetCore3.1_Secutiry源码解析_6_Authentication_OpenIdConnect

    title: "AspNetCore3.1_Secutiry源码解析_6_Authentication_OpenIdConnect" date: 2020-03-25T21:33: ...

  5. Cisco二层交换机命令

    1.二层交换机基本配置 Switch >Switch >enable   # 进入特权模式 Switch#configure terminal   # 进入全局配置模式 Switch(co ...

  6. 阅读了这三篇文章,你也就基本理解了ASP.NET Core MVC框架的工作原理

    <200行代码,7个对象--让你了解ASP.NET Core框架的本质>让很多读者对ASP.NET Core管道有深刻的理解,知道了ASP.NET Core框架针对每个请求的处理流程.在过 ...

  7. 发布内容需要的Markdown语法

    发布内容需要的Markdown语法 目录 发布内容需要的Markdown语法 [toc] 1.概述 1.1设计理念 1.2内联HTML语法 1.3特殊字符自动转义 2.行内语法讲解 2.1注释的表述 ...

  8. GitLab → 搭建中常遇的问题与日常维护

    开心一刻 隔壁有一个80多岁的老大爷,昨天在小区的一棵树下发现一条黑色的蛇,冻僵了,大爷善心大发,就把蛇揣在了怀里,想给它一点温暖. 今天一大早看到大爷在树上挂了一个牌子,写到:不准随地大小便! 搭建 ...

  9. [noip模拟]难缠的值周生<宽搜>

    难缠的值周生 [问题描述] 小 P 上学总是迟到,迟到了以后常常会被值周生发现.被值周生发现就会给他所在的班级扣分,被扣了分不免要挨班主任的训,这令小 P 很不爽.不过,聪明的他经过观察发现,值周生通 ...

  10. js拖拽效果的实现及原理

    元素拖拽分成3个步骤:按下鼠标,移动鼠标,松开鼠标. 拖拽原理:按下拖拽元素后开始监听文档中鼠标移动事件,然后再监听鼠标松开事件:鼠标移动时,元素div要随着鼠标一起移动,需要计算元素div位移的距离 ...