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 从数据库提取二进制图片的处理代码
Sep 09 PHP
支持中文的php加密解密类代码
Nov 27 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
合格的PHP程序员必备技能
Nov 13 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP删除数组中特定元素的两种方法
Feb 28 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
解析isset与is_null的区别
2013/08/09 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
checkbox 复选框不能为空
2009/07/11 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
js获取url传值的方法
2015/12/18 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
python 类详解及简单实例
2017/03/24 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
园艺师求职信
2014/03/10 职场文书
工作推荐信范文
2014/05/10 职场文书
国贸专业求职信
2014/06/28 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
商务司机岗位职责
2015/04/10 职场文书
学校党员干部承诺书
2015/05/04 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python