当前位置:首页 > 技术教程 > 技术文章 > 正文内容

TP6常用的增删改查方法合集(DB类+模型类)

atao3年前 (2021-02-25)技术文章3470

注意:

1、注意引入DB和模型的门面类

2、想要添加视图文件,一定要先composer引入view模板引擎

3、下面方法来自官方手册,只是写了一些个人常用的,并非齐全。



增(添加)

  • DB类方法

方法一:

    $data = ['name'=>'张三', 'sex'=>'男'];

    Db::table('tp_user')->insert($data);

方法二:

    Db::table('tp_user')->insert( ['name'=>'张三', 'sex'=>'男']);

返回主键ID:

    $userId = Db::table('tp_user')->insertGetId($data);

批量插入:

    $dataAll = [

        ['foo' => 'bar1', 'bar' => 'foo1'],

        ['foo' => 'bar2', 'bar' => 'foo2'],

        ['foo' => 'bar3', 'bar' => 'foo3']

    ];

    Db::table('tp_user')->limit(100)->insertAll($dataAll);    //分批写入 每次最多100条数据


  • 模型类方法

方法一:

    $user = new User;

    $user->name = 'thinkphp';

    $user->save();

方法二:

    $user = new User;

    $user->save(['name' => 'thinkphp']);

批量插入:

    $user = new User;

    $list = [

        ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],

        ['name'=>'onethink','email'=>'onethink@qq.com']

    ];

    $user->saveAll($list);

静态方法插入:

    $user = User::create(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);

    echo $user->id; // 获取自增ID


删(删除)

  • DB类方法

 根据主键删除:

    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();


  • 模型类方法

方法一:

    $user = User::find(1);

    $user->delete();

闭包删除:

    User::destroy(function($query){

        $query->where('id','>',10);

    });

静态方法一:

    User::destroy(1);

    User::destroy([1,2,3]);

静态方法二:

    User::where('id','>',10)->delete();



改(更新)

  • DB类方法

方法一:

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

方法二:

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

方法三:

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


  • 模型类方法

方法一:

    $user = User::find(1);

    $user->name = 'thinkphp';

    $user->save();

批量修改:

    $user = new User;

    $list = [

        ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],

        ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com']

    ];

    $user->saveAll($list);

静态方法:

    User::update(['name' => 'thinkphp', 'id' => 1]);

    User::update(['name' => 'thinkphp'], ['id' => 1]);



查(查询)

  • DB类方法

单条查询:

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

多条查询:

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


  • 模型类方法

单个查询:

    $user = User::find(1);

批量查询:

    $user = User::select([1,2,3]);


链式操作
连贯操作作用支持的参数类型
where*用于AND查询字符串、数组和对象
whereOr*用于OR查询字符串、数组和对象
whereTime*用于时间日期的快捷查询字符串
table用于定义要操作的数据表名称字符串和数组
alias用于给当前数据表定义别名字符串
field*用于定义要查询的字段(支持字段排除)字符串和数组
order*用于对结果排序字符串和数组
limit用于限制查询结果数量字符串和数字
page用于查询分页(内部会转换成limit)字符串和数字
group用于对查询的group支持字符串
having用于对查询的having支持字符串
join*用于对查询的join支持字符串和数组
union*用于对查询的union支持字符串、数组和对象
view*用于视图查询字符串、数组
distinct用于查询的distinct支持布尔值
lock用于数据库的锁机制布尔值
cache用于查询缓存支持多个参数
with*用于关联预载入字符串、数组
bind*用于数据绑定操作数组或多个参数
comment用于SQL注释字符串
force用于数据集的强制索引字符串
master用于设置主服务器读取数据布尔值
strict用于设置是否严格检测字段名是否存在布尔值
sequence用于设置Pgsql的自增序列名字符串
failException用于设置没有查询到数据是否抛出异常布尔值
partition用于设置分区信息数组 字符串
replace用于设置使用REPLACE方式写入布尔值
extra用于设置额外查询规则字符串
duplicate用于设置DUPLCATE信息数组 字符串

所有的连贯操作都返回当前的模型实例对象(this),其中带*标识的表示支持多次调用。


扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://yizhanhongtu.cn/post/54.html

分享给朋友:

相关文章

什么是flex布局,它的常用属性有哪些

什么是flex布局,它的常用属性有哪些

什么是flex 布局?flex是 flexible box 的缩写,就是弹性布局的意思。任何一个元素(块元素、行内块元素、行内元素),都可以设置为弹性盒子属性。语法:块元素: display:flex...

用PHP如何打造一个高可用高性能的网站

用PHP如何打造一个高可用高性能的网站

1. 说到高可用的话要提一下redis,用过的都知道redis是一个具备数据库特征的nosql,正好弥补了PHP的瓶颈,个人认为PHP的 瓶颈在于数据库,像Apache和Nginx的高级web服务器在...

PHP开发api接口,如何做才算是安全的

PHP开发api接口,如何做才算是安全的

php的api接口在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,...

php版微信公众平台之微信网页登陆授权示例详解

php版微信公众平台之微信网页登陆授权示例详解

之前在项目中遇到网页授权登录这个需求,就对此做些总结记录。OAuth2.0授权:OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的个人信息,而...

ThinkPHP框架整合微信支付统一下单接口之Native扫码支付模式

ThinkPHP框架整合微信支付统一下单接口之Native扫码支付模式

此篇文章主要介绍了ThinkPHP6框架下整合微信支付之Native手册里面有的东西不多介绍,请求参数、返回结果之类的请移步官方手册查看。本文主要是通过一个demo实例进行讲解微信支付之统一下单接口。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。