您的位置: 翼速应用 > 业内知识 > PHP框架 > 正文

干货来了!Thinkphp 5.0 对数据库的操作代码分享

本文是关于Thinkphp的干货知识分享,一个标准的网站一定离不开数据库的操作,s本文就分享给大家Thinkphp 5.0 对数据库的操作具体代码,希望能够给大家带来帮助,下面是详细内容。


干货来了!Thinkphp 5.0 对数据库的操作代码分享


干货来了!Thinkphp 5.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 字段加 1
Db::table('think_user')->where('id', 1)->setInc('score');
// score 字段加 5
Db::table('think_user')->where('id', 1)->setInc('score', 5);
// score 字段减 1
Db::table('think_user')->where('id', 1)->setDec('score');
// score 字段减 5
Db::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 时间比较


以上就是关于Thinkphp 5.0 对数据库的操作代码分享,翼速应用平台内有更多相关资讯,欢迎查阅!


我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题