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 相关文章推荐
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
在PHP中使用redis
Nov 04 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php生成唯一的订单函数分享
Feb 02 PHP
php实现将上传word文件转为html的方法
Jun 03 PHP
PHP+ajax分页实例简析
Dec 07 PHP
php实现图片以base64显示的方法
Oct 13 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
apache mysql php 源码编译使用方法
2012/05/03 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
php fread函数使用方法总结
2019/05/28 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python中的zipfile模块使用详解
2015/06/25 Python
python3.7.0的安装步骤
2018/08/27 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Django框架表单操作实例分析
2019/11/04 Python
Python print不能立即打印的解决方式
2020/02/19 Python
业务员简历自我评价
2014/03/06 职场文书
施工安全标语
2014/06/07 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
2015年材料员工作总结
2015/04/30 职场文书
在人间读书笔记
2015/06/30 职场文书