查询构造器

//插入记录
$result=Db::table('think_data')->insert(['name'=>'张三','status'=>1]);
//修改数据
$result=Db::table('think_data')->where('id', 1)->update(['name'=>"陈国松",'status'=>0]);
//查询数据
$result=Db::table('think_data')->select();

(貌似修改数据不能以id修改可能是id加了AUTO_INCREMENT,能不用助手函数就不用助手函数)

链式操作

数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作。

使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排

序 ,代码如下:

Db::table('think_user')
->where('status',1)
->order('create_time')
->limit(10)
->select();

这里的 where 、 order 和 limit 方法就被称之为链式操作方法,除了select方法必须放到最后一个外

(因为select方法并不是链式操作方法),链式操作的方法调用顺序没有先后,例如,下面的代码和上面的等

效:

Db::table('think_user')
->order('create_time')
->limit(10)
->where('status',1)
->select();

其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:

Db::table('think_user')
->where('id',1)
->field('id,name,email')
->find();
Db::table('think_user')
->where('status',1)
->where('id',1)
->delete();

链式操作在完成查询后会自动清空链式操作的所有传值。简而言之,链式操作的结果不会带入后面的其它查询。

查询数据

  $result=Db::name('data')->where('status',1)->find();

  $result=Db::name('data')->where('status',1)->select();

find方法和select方法的区别在于find只能查到一个,而select是查询所有的。

查询表达式

模糊查询

      $result=Db::name('data')->where('name','like','%陈%')->select();

区间查询

            $result=Db::name('data')->where('id','BETWEEN',[2,4])->select();

一次性插入多条数据

            $data=[

     ['name'=>"凌志林",'status'=>1],

 	  ['name'=>"林志颖",'status'=>2],

            ];

            $result=Db::name('data')->insertALL($data);

更改字段值

            $result=Db::name('data')->where('name','陈国松')->setField('name','陈松');

自增加一

$result=Db::name('data')->where('name','陈松')->setInc('status');

自减

$result=Db::name('data')->where('name','陈松')->setDec('status',2);

模型

Thinkphp5.0的模型是一种关系映射ORM的封装并且提供了简洁的ActiveRecord实现。一般来说,每个数据表会和一个"模型对应"。

模型类返回的是当前模型对象实例,模型是比Db类更高级的数据封装,支持模型关联,模型事件。

模型定义

首先创建一个数据表

然后新建如下文件及文件夹

其中model里的User.php如下

<?php
namespace app\index\model;
use think\Model;
class User extends Model
{ }

controller里面的User.php

<?php

namespace app\index\controller;

use app\index\model\User as UserModel;

class User{

    //新增一条数据的方法

   public function add()

    {

       echo 'hello';

        $user =new UserModel();

        $user->id=1;

        $user->name='陈国松';

        $user->email='liuyun@qq.com';

        $user->birthday=strtotime('1989-7-11');

      if( $user->save()){

          return '用户新增成功';

      }else{
return '用户新增失败'; } } }

地址栏这样访问(没有弄虚拟主机的)

http://localhost/thinkphp5.0/public/index.php/index/User/add

成功的话数据库会如下

Thinkphp5.0第二篇的更多相关文章

  1. Thinkphp5.0第一篇

    THINKphp5.0框架 mvc moudle(数据)+view(表现层)+controller(业务逻辑) thinkphp5.0特点 中国人开发最符合国人习惯和思维方式 开源免费面向对象轻量级的 ...

  2. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  3. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

  4. (转载) 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁 ...

  5. 深入理解javascript对象系列第二篇——属性操作

    × 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对 ...

  6. 前端工程师技能之photoshop巧用系列第二篇——测量篇

    × 目录 [1]测量信息 [2]实战 [3]注意事项 前面的话 前端工程师使用photoshop进行的大量工作实际上是测量.本文是photoshop巧用系列第二篇——测量篇 测量信息 在网页制作中需要 ...

  7. [转]Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...

  8. 第二篇.Bootstrap起步

    第二篇Bootstrap起步 我们可以在http://getbootstrap.com下载bootstrap的文件 点击左边的download bootstrap可以下载bootstrap的css,j ...

  9. 【OpenGL】第二篇 Hello OpenGL

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. 2019nc#5

    题号 标题 已通过代码 题解/讨论 通过率 团队的状态 A digits 2 点击查看 1017/2384  通过 B generator 1 点击查看 567/3692  通过 C generato ...

  2. 牛客网暑期ACM多校训练营(第三场) J Distance to Work 计算几何求圆与多边形相交面积模板

    链接:https://www.nowcoder.com/acm/contest/141/J来源:牛客网 Eddy has graduated from college. Currently, he i ...

  3. 面试加分项-HashMap源码中这些常量的设计目的

    前言 之前周会技术分享,一位同事讲解了HashMap的源码,涉及到一些常量设计的目的,本文将谈谈这些常量为何这样设计,希望大家有所收获. HashMap默认初始化大小为什么是1 << 4( ...

  4. happen before 原则

    并发一直都是程序开发者绕不开的难题,在上一篇文章中我们知道了导致并发问题的源头是 : 多核 CPU 缓存导致程序的可见性问题.多线程间切换带来的原子性问题以及编译优化带来的顺序性问题. 原子性问题我们 ...

  5. SpringCloud学习笔记(1):Eureka注册中心

    简介 Eureka是Netflix开源的基于rest的服务治理方案,分为Server端和Client端,Server端为注册中心,其他微服务通过Client端连接Server端进行服务的注册和发现. ...

  6. spring boot使用常规发送邮件

    spring boot使用常规发送邮件 1.pom.xml文件依赖: <!-- javax.mail begin--> <dependency> <groupId> ...

  7. MySQL二进制日志分析-概述篇

    MySQL从3.23版本开始引入了二进制日志,用于的数据复制, 二进制日志根据MySQL的版本不同,目前有4个版本: https://dev.mysql.com/doc/internals/en/bi ...

  8. Android开发学习路线的七个阶段和步骤

    Android开发学习路线的七个阶段和步骤           Android学习参考路线     第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和St ...

  9. .Net基础篇_学习笔记_第七天_计算质数(找出0-100以内说有质数)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. 手机端特有的meta标签有哪些?

    3.1 meta 语法 定义和用法:name 属性把 content 属性连接到 name. 语法:name=author|description|keywords|generator|revised ...