最近同事问到  save 的数据保存问题,作为自己的一个巩固,做此纪录。

TP手册--save新增数据  修改数据

一些特别需要注意的点:

  1. save方法新增数据返回的是写入的记录数。
  2. saveAll方法新增数据返回的是包含新增模型(带自增ID)的数据集(数组)。
  3. 批量更新仅能根据主键值进行更新,其它情况请使用foreach遍历更新。
  4. 如果传入update的数据包含主键的话,可以无需使用where方法。
  5. 如果你调用save方法进行多次数据写入的时候,需要注意,第二次save方法的时候必须使用isUpdate(false),否则会视为更新数据。(注意不要在一个模型实例里面做多次更新,会导致部分重复数据不再更新,正确的方式应该是先查询后更新或者使用模型类的update方法更新。)
  6. save 自动补充更新,新增时间

模型的新增和更新方法都是save方法,系统有一套默认的规则来识别当前的数据需要更新还是新增。

  • 实例化模型后调用save方法表示新增;
  • 查询数据后调用save方法表示更新;
  • save方法传入更新条件后表示更新;

如果你的数据操作比较复杂,可以显式的指定当前调用save方法是新增操作还是更新操作。
$user = new User;
更新数据:
$user->isUpdate(true)->save(['id' => 1, 'name' => 'thinkphp']);
新增数据:

$user->isUpdate(false)->save([ 'name' => 'thinkphp']);

save 数据没有修改返回 0, 成功返回受影响行数,所以判断数据更新是成功

if($result !== false){        //成功

}else{                               //失败

}

think PHP 数据库保存(新增、修改)save saveALL相关推荐

  1. 数据库新增修改和删除

    数据库新增修改和删除 想必在现行的世界中数据很是重要,数据数据.做it这一行得首先我首先想到的就是数据库–SQL Server 2014 Management Studio 一个很实用的处理数据的软件 ...

  2. VUE+ELEMENTUI el-upload照片墙手动上传多张图片 保存和修改功能前后端完整实现

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. VUE+ELEMENTUI el-upload照片墙手动上传多张图片 保存和修改功能前后端完整 ...

  3. sharepoint 2016 学习系列篇(14)-自定义列表应用篇-(3)列表数据的新增,修改,删除操作

    前面添加完列表的字段之后,接下来介绍列表数据的新增,修改,删除操作,不需要开发,就能实现数据的新增,修改,删除等操作. 重新返回到列表的http://192.168.1.73:7003/Lists/U ...

  4. 使用数据库保存Asterisk sip账号信息(odbc方式)

    在默认情况下,Asterisk的配置文件都保存在/etc/asterisk目录中,以ini文件的格式保存.我们也可以使用数据库来保存大多数Asterisk配置信息. Asterisk使用数据库保存配置 ...

  5. Oracle触发器之表新增/修改的触发操作

    Oracle触发器之表新增/修改的触发操作 Oracle创建触发器,若是本地触发,加数据库名即可:如果是远程服务器,做一个db_link操作即可. 教学代码 建表:create table User_ ...

  6. 达梦数据库表新增字段速度测试

    给表新增字段是一项日常需求,数据库在这种DDL的资源消耗还是很大的,达梦数据库在新增字段方面有些学习了oracle 11g的思路. 达梦数据库提供了参数 ALTER_TABLE_OPT 来控制添加字段 ...

  7. mysql数据库密码的修改

    mysql数据库密码的修改 1.首先找到mysql对应的bin/mysql.exe目录里面然后输入cmd打开cmd面板 2.在cmd面板里面输入mysqld --skip-grant-tables然后 ...

  8. c#窗体点餐系统 使用sql server 数据库保存数据

    c#窗体点餐系统 使用sql server 数据库保存数据 登录界面 using System; using System.Collections.Generic; using System.Comp ...

  9. Unity简单商城系统,用SQLite数据库保存/加载数据

    Unity简单商城系统案例 流程 最后效果展示 1. 创建项目并导入SQLite需要的dll文件 2. 创建数据库表(玩家表和商店表) 3. Singleton 单例脚本 4. 封装SQLite数据库 ...

  10. 舱位等级新增修改总结

    1.编辑新增/修改的保存的方法 (1)获取舱位代码变量 (2)获取舱位等级名称变量 (3)获取基础价格变量 (4)获取折扣变量 (5)用if语句判断(1)(2)(3)(4)获取的变量不能为空和null ...

最新文章

  1. 【问题收录】svn: E155010: 提交失败(Ubuntu14.04环境)
  2. 线性回归——最小二乘法_实例(二)
  3. 查看网页服务器搭建方式(Python3)
  4. 计算机专业 毕业论文 百度云,计算机专业毕业论文.pdf
  5. 数据类型之数字类型—运算符
  6. 聊聊 | 他在Google Play安全奖励计划贡献榜单上排名第一
  7. linux早期内核的khttpd服务器--策略污染机制
  8. Sentry的安装搭建与使用
  9. asp定时生成静态HTML的代码
  10. 【Zookeeper系列】Zookeeper命令操作(转)
  11. python批量查询IP物理地址输出到Exel
  12. python win32api sendmessage_Python win32api.SendMessage方法代码示例
  13. 读《美国交通信号配时实践经验》后的感受
  14. 从头来过教你PHP脚本语言(一)
  15. reRender属性的使用
  16. python过滤敏感词记录
  17. (My)SQL 使用入门
  18. unity3d横版游戏移动_制作游戏并不困难。 回顾Unity3D上的小型移动项目
  19. 如何建立自己的知识体系?六步就能简单打造
  20. 如何制作动画效果的文字图片?教你一键合成gif动画

热门文章

  1. python实现基本算法之归并排序(Merge sort)
  2. [数值分析拟合]Matlab三次样条插值拟合数据
  3. 计算机毕业设计JAVA旅游众筹平台mybatis+源码+调试部署+系统+数据库+lw
  4. 2022年保险保险经纪人考试每日一练及答案
  5. 程序员怎么接私活:外包众包接单方法网站全介绍
  6. 无网格和无网格CFD,你不知道的事
  7. 银联AMT机并不是所有带银联的银行卡都可以取钱使用的!
  8. mysql倒库操作遇到的问题
  9. 计算机一级 文档计算总和,江苏省计算机一级选择题总和.docx
  10. 耶胡达•阿米亥《人的一生》