Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解


Posted in PHP onOctober 11, 2019

本文实例讲述了Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作。分享给大家供大家参考,具体如下:

Thinkphp5.0 的使用模型Model添加数据

使用create()方法添加数据

$res = TestUser::create([
  'name' => 'zhao liu',
  'password' => md5(123456),
  'email' => 'zhaoliu@qq.com'
]);
dump($res);

使用save()方法添加数据

$userModel = new TestUser;
$userModel->name = 'ya ya';
$userModel->email = 'yaya@139.com';
$res = $userModel->save();
dump($res);//影响的行数
dump($userModel->id);//新纪录的id

注意:使用allowField(true)方法,传递不存在的字段时不会报错

示例:

$userModel = new TestUser;
$userModel->name = 'hei hei';
$userModel->email = 'heihei@139.com';
$userModel->yes = '不存在字段';
$res = $userModel->allowField(true)->save();
dump($res);//影响的行数
dump($userModel->id);//新纪录的id

使用saveAll()方法添加多条数据

$userModel = new TestUser;
$data = array(
  ['name'=>'ga ga','email'=>'gaga@sina.com'],
  ['name'=>'you you','email'=>'youyou@163.com']
);
//返回结果是个多维的数组
$res = $userModel->saveAll($data);
//如果需要得到添加的数据的每个id,需要遍历
foreach($res as $v){
  dump($v->id);
}

Thinkphp5.0 的使用模型Model更新数据

(1)使用update()方法进行更新数据

一、where条件写在更新数据中

(这种情况更新的数据,必须含主键)

$res = User::update([
  'id' => 2,
  'email' => '121@qq.com'
]);
//返回修改之后model的整个对象信息
dump($res);

二、where条件使用update()的第二个参数,传递数组

$res = User::update([
  'email' => '123@qq.com'
],['id'=>2]);
//返回修改之后model的整个对象信息
dump($res);

三、where条件使用update()的第二个参数,传递闭包函数

$res = User::update([
  'email' => '555@qq.com'
],function($query){
  $query->where(['id'=>2]);
});
//返回修改之后model的整个对象信息
dump($res);

四、使用where条件

$res = User::where('id','=',2)->update([
  'email'=>'666@qq.com'
]);
//返回影响的行数
dump($res);

(2)使用save()方法

方式一:

$model = User::get(2);
$model->email = '777@qq.com';
$res = $model->save();
//返回影响的行数
dump($res);

方式二:

$model = new User();
$res2 = $model->save([
  'email' => '999@qq.com'
],['id'=>2]);
//返回影响的行数
dump($res2);

方式三:

$model = new User();
$res = $model->save([
  'email' => '000@qq.com'
],function($query){
  $query->where(['id'=>2]);
});
//返回影响的行数
dump($res);

使用saveAll()方法更新多个数据:

$model = new User();
$res = $model->saveAll([
  ['id' => 2,'email' => '122@qq.com'],
  ['id' => 3,'email' => '123@qq.com'],
  ['id' => 4,'email' => '124@qq.com']
]);
//返回数组
dump($res);

Thinkphp5.0 的使用模型Model删除数据

一、使用destory()删除数据

//删除id为3的记录
$res = User::destroy(3);
//返回影响的行数
dump($res);

destory()的参数可以是主键、数组条件、闭包函数。

二、使用delete()删除数据

//删除id为3的记录
$model = User::get(3);
$res = $model->delete();
//返回影响的行数
dump($res);

三、delete()和where()

//删除id为4的记录
$res = User::where('id','=',4)->delete();
//返回影响的行数
dump($res);

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
[转帖]PHP世纪万年历
Dec 06 PHP
让PHP开发者事半功倍的十大技巧小结
Apr 20 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
laravel通用化的CURD的实现
Dec 13 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 #PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 #PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 #PHP
laravel 判断查询数据库返回值的例子
Oct 11 #PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 #PHP
laravel框架添加数据,显示数据,返回成功值的方法
Oct 11 #PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 #PHP
You might like
PHP文件操作实现代码分享
2011/09/01 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
JavaScript中this详解
2015/09/01 Javascript
完善的jquery处理机制
2016/02/21 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
VueJs监听window.resize方法示例
2018/01/17 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
vue 实现图片懒加载功能
2020/12/31 Vue.js
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
python PyTorch预训练示例
2018/02/11 Python
Django用户认证系统 User对象解析
2019/08/02 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
Django如何实现防止XSS攻击
2020/10/13 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
《唯一的听众》教学反思
2014/02/20 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
清明节主题班会
2015/08/14 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python