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 jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
thinkPHP中_initialize方法实例分析
Dec 05 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP反射实际应用示例
Apr 03 PHP
PHP反射基础知识回顾
Sep 10 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
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
经验几则 推荐
2006/09/05 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
纯css3实现效果超级炫的checkbox复选框和radio单选框
2014/09/01 HTML / CSS
用canvas显示验证码的实现
2020/04/10 HTML / CSS
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
学生会离职感言
2014/02/11 职场文书
个人委托书范本
2014/09/13 职场文书
中学生逃课检讨书
2015/02/17 职场文书
2016高考感言
2015/08/01 职场文书
记者节感言
2015/08/03 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
Python基础之元编程知识总结
2021/05/23 Python
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL