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 相关文章推荐
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
php中使用Imagick实现图像直方图的实现代码
Aug 30 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
PHP session 会话处理函数
Jun 06 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP回调函数简单用法示例
May 08 PHP
Thinkphp页面跳转设置跳转等待时间的操作
Oct 16 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
提取HTML标签
2006/10/09 PHP
php获取地址栏信息的代码
2008/10/08 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
php字符集转换
2017/01/23 PHP
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JS & JQuery 动态添加 select option
2016/06/08 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
js中new一个对象的过程
2017/02/20 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
python基础梳理(一)(推荐)
2019/04/06 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
程序员跳槽必看面试题总结
2013/06/28 面试题
护理专业自荐信范文
2014/02/26 职场文书
软件测试专业推荐信
2014/09/18 职场文书
警察群众路线整改措施
2014/09/26 职场文书
幼儿园辞职信
2015/05/13 职场文书
Django如何与Ajax交互
2021/04/29 Python
Django如何创作一个简单的最小程序
2021/05/12 Python
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python