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 相关文章推荐
Discuz板块横排显示图片的实现方法
May 28 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
利用php递归实现无限分类 格式化数组的详解
Jun 08 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
解决php扩展安装不生效问题
Oct 25 PHP
php封装的page分页类完整实例代码
Feb 01 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
浅析Python装饰器以及装饰器模式
2018/05/28 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
使用darknet框架的imagenet数据分类预训练操作
2020/07/07 Python
个人找工作自荐信格式
2013/09/21 职场文书
行政管理人员精品工作推荐信
2013/11/04 职场文书
开学典礼感言
2014/02/16 职场文书
校园公益广告语
2014/03/13 职场文书
目标管理责任书
2014/04/15 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
PHP中多字节字符串操作实例详解
2021/08/23 PHP