Thinkphp5.0对数据库的操作方法有哪些

Thinkphp5.0对数据库的操作方法有哪些

基本使用

查询操作

Db::query('select * from think_user where id=?',[8]);

写入操作

Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);

查询构造器

查询数据

find 返回一条记录,返回的结果是一个一维数组 如果结果不存在,返回NULL

Db::table('think_user')->where('id',1)->find();

select 返回所有记录,返回的结果是一个二维数组 如果结果不存在,返回一个空数组

Db::table('think_user')->where('status',1)->select();

助手函数

系统提供了一个db助手函数,可以更方便的查询:

db('user')->where('id',1)->find();db('user')->where('status',1)->select();

注意:使用db助手函数默认每次都会重新连接数据库,而使用Db::name或者Db::table方法的话都是单例的。db函数如果需要采用相同的链接,可以传入第三个参数,例如

db('user',[],false)->where('id',1)->find();db('user',[],false)->where('status',1)->select();

添加数据

使用 Db 类的 insert 方法向数据库提交数据

$data = ['foo' => 'bar', 'bar' => 'foo'];Db::table('think_user')->insert($data);

添加多条数据

添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可

$data = [    ['foo' => 'bar', 'bar' => 'foo'],    ['foo' => 'bar1', 'bar' => 'foo1'],    ['foo' => 'bar2', 'bar' => 'foo2']];Db::name('user')->insertAll($data);

insertAll 方法添加数据成功返回添加成功的条数

助手函数

// 添加单条数据db('user')->insert($data);// 添加多条数据db('user')->insertAll($list);

更新数据

update 方法返回影响数据的条数,没修改任何数据返回 0

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);

更新某个字段的值: setField 方法返回影响数据的条数,没修改任何数据字段返回 0

Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');
自增或自减一个字段的值// score 字段加 1Db::table('think_user')->where('id', 1)->setInc('score');// score 字段加 5Db::table('think_user')->where('id', 1)->setInc('score', 5);// score 字段减 1Db::table('think_user')->where('id', 1)->setDec('score');// score 字段减 5Db::table('think_user')->where('id', 1)->setDec('score', 5);

延迟更新

Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);

删除数据

// 根据主键删除Db::table('think_user')->delete(1);Db::table('think_user')->delete([1,2,3]);// 条件删除    Db::table('think_user')->where('id',1)->delete();Db::table('think_user')->where('id','<',10)->delete();

条件查询方法

where

可以使用where方法进行AND条件查询:

Db::table('think_user')    ->where('name','like','%thinkphp')    ->where('status',1)    ->find();

whereOr方法

Db::table('think_user')    ->where('name','like','%thinkphp')    ->whereOr('title','like','%thinkphp')    ->find();

混合查询

where方法和whereOr方法在复杂的查询条件中经常需要配合一起混合使用,下面举个例子:

$result = Db::table('think_user')->where(function ($query) {    $query->where('id', 1)->whereor('id', 2);})->whereOr(function ($query) {    $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp');})->select();

查询表达式

查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:

where('字段名','表达式','查询条件');whereOr('字段名','表达式','查询条件');
表达式 含义EQ、= 等于(=)NEQ、<> 不等于(<>)GT、> 大于(>)EGT、>= 大于等于(>=)LT、< 小于(<)ELT、<= 小于等于(<=)LIKE 模糊查询[NOT] BETWEEN (不在)区间查询[NOT] IN (不在)IN 查询[NOT] NULL 查询字段是否(不)是NULL[NOT] EXISTS EXISTS查询EXP 表达式查询,支持SQL语法> time 时间比较< time 时间比较between time 时间比较notbetween time 时间比较

关于“Thinkphp5.0对数据库的操作方法哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Thinkphp5.0对数据库的操作方法有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

文章标题:Thinkphp5.0对数据库的操作方法有哪些,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/29823

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月26日 上午1:47
下一篇 2022年9月26日 上午1:48

相关推荐

  • Docker资源限制Cgroup怎么使用

    1.Cgroup简介 _cgroups,是一个非常强大的linux内核工具,他不仅可以限制被namespace隔离起来的资源, 还可以为资源设置权重、计算使用量、操控进程启停等等。所以cgroups (Control groups) 实现了对资源的配额和度量。 cgroups有四大功能: 资源限制:…

    2022年9月15日
    80900
  • 戴尔服务器配什么显卡好

    摘要 选择适合戴尔服务器的显卡需考虑1、需求定位,2、兼容性,3、性能/价格比,4、功耗与散热。其中,需求定位是首要考虑的因素,它决定了选用显卡的基本方向。服务器用途不同,对显卡的需求也会大不相同。例如,用于图形设计或视频编辑的服务器需要高性能的显卡来处理复杂的图形计算,而用于基本的网页托管或轻量级…

    2024年4月25日
    700
  • Redis RESP协议如何实现

    回顾RESP协议 RESP是基于TCP来实现的Redis通信协议,该协议是以/r/n(行)进行分割的,协议支持5种类型,具体信息如下: 类型 前缀 备注 简单字符串 + 简单字符串以+开头 错误数据 – 错误数据以-开头 整数 : 整数以:开头 复杂字符串 $ 复杂字符串以$开头 数组 …

    2022年9月8日
    60500
  • 怎样进行Apache Solr最新RCE漏洞分析

    引言 Apache Solr爆出RCE 0day漏洞(漏洞编号未给出),这里简单的复现了对象,对整个RCE的流程做了一下分析,供各位看官参考。 漏洞复现 复现版本:8.1.1 实现RCE,需要分两步,首先确认,应用开启了某个core(可以在Core Admin中查看),实例中应用开启了mycore,…

    2022年9月15日
    70400
  • cad字体不显示数字怎么解决

    解决方法 1、首先我们打开软件,找到菜单栏上的格式,再找到下拉菜单上的标注样式管理器。 2、然后在跳转出来的对话框中,点击当前使用的标注样式,然后再点击右侧的修改。 3、然后在跳转的新页面里,我们点击文字的选项,在文字高度这一块把高度数值改大一些。 以上就是“cad字体不显示数字怎么解决”这篇文章的…

    2022年9月16日
    74600
  • transform在CSS中的含义是什么

    在CSS中,transform的意思为改变、变形,主要用于设置元素的形状改变,实现元素的2D或3D转换;该属性可以配合属性值(转换函数)来对将元素进行旋转rotate、扭曲skew、缩放scale、移动translate以及矩阵变形matrix。 本教程操作环境:windows7系统、CSS3&am…

    2022年9月22日
    1.1K00
  • mysql的安装路径如何查看

    查看方法:1、鼠标右击“计算机”图标,在打开的菜单中点击“管理”;2、依次点击“服务和应用程序”-“服务”;3、在右侧服务列表中,找到mysql服务;4、选中mysql服务,点击鼠标右键,在打开的菜单中选择“属性”;5、在“mysql属性”弹窗中,查看“可执行文件路径”选项的值即可,该选项的值就是M…

    2022年9月24日
    2.0K00
  • Python怎么实现Web服务器FastAPI

    1、简介 FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python类型提示。 关键特性: 快速:可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic)。非常快的 Python w…

    2022年9月24日
    1.2K00
  • windows office365怎么卸载干净

    office365卸载干净步骤: 1、左键你的开始菜单,找到设置,如图。 2、点击进入到应用中。 3、在应用与功能里找到和office365。 4、点击卸载。 6、将保留我的的数据和使用习惯取消勾选。 7、此时点击继续卸载,就会将残留文件也移除了。 到此,关于“windows office365怎么…

    2022年9月21日
    97700
  • windows会声会影导出视频mp4格式的方法

    会声会影导出视频mp4格式的方法 1、首先点击上方的“共享”。 2、点击右侧的“MPE4”。 3、我们可以在配置文件中更改视频具体参数。 4、然后修改文件名和渲染解码方式。 5、最后点击右边的文件夹选择保存路径,点击“开始”开始导出。 6、等待渲染完成导出视频就可以了。 以上就是关于“windows…

    2022年9月15日
    63200
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部