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

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

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

注意:

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://www.yizhanhongtu.cn/post/54.html

分享给朋友:

相关文章

CSS度量的单位px、rem、em、vw、vh有什么区别

CSS度量的单位px、rem、em、vw、vh有什么区别

1、px绝对单位,页面按精确像素展示2、em相对长度单位,相对于当前对象内文本的字体尺寸, 根据父元素的大小变化而变化对单位,基准点为父节点字体的大小。em是指字体高度 浏览器默认1em=16px,所...

jQuery Growl 插件(消息提醒) 弹出层插件

jQuery Growl 插件(消息提醒) 弹出层插件

jQuery Growl 插件(消息提醒) 允许您很容易地在一个覆盖层显示反馈消息。消息会在一段时间后自动消失,不需要单击"确定"按钮等。用户也可以通过移动鼠标或点击关闭按钮加快隐...

【推荐】10个提升用户体验图像特效库

【推荐】10个提升用户体验图像特效库

1.imagehover地址:https://github.com/ciar4n/imagehover.css imagehover.css- 纯CSS3鼠标滑过图片效果动画库,44种鼠标滑过效果2....

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

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

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

thinkPHP实现微信支付之退款,附demo示例

thinkPHP实现微信支付之退款,附demo示例

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

发表评论

访客

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