| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> TP5 模型新增的返回值、返回值的判断以及所使用的SQL -> 正文阅读 |
|
[大数据]TP5 模型新增的返回值、返回值的判断以及所使用的SQL |
TP5 模型新增主要使用静态方法?create?和动态方法?save? 静态方法?create?直接使用模型类静态调用,例如 Test 模型类新增 username 为 a 的用户,如下
生成的 SQL 如下
返回值 执行 create 方法成功则返回当前新增数据的模型类实例,失败则报错 重要提醒 执行 create 方法成功不代表新增数据成功,如果当前新增数据的字段名在数据库内是不存在的, create 方法是不会向数据库发送 SQL 语句的,如下
因为模型在执行新增操作前,会发送一条 SQL 语句获得表结构,如下
因为 name 字段在表结构中是不存在的,所以 create 方法是不会向数据库发送 SQL 语句的,而且 create 方法不会有任何错误提示,依然能返回新增数据的模型类实例,如下
动态方法 save使用模型类实例动态调用,例如 Test 模型类实例新增 username 为 a 的用户,如下
生成的 SQL 如下
返回值 V5.1.6+版本以前 save 方法返回新增的记录数 V5.1.6+版本以后 统一返回布尔值,如果执行 save 方法成功则返回 true(哪怕新增的行数是 0 也是返回 true ),并只有当?before_update 事件返回?false 的时候返回?false 重要提醒 1、从 V5.1.6+版本开始,save 方法只管执行 SQL 不管 SQL 执行后的结果,执行 SQL 成功则返回 true(哪怕新增的行数是 0 也是返回 true ) 2、和静态方法 create 一样,执行 save 方法成功不代表新增数据成功,如果当前新增数据的字段名在数据库内是不存在的, save 方法是不会向数据库发送 SQL 语句的,如下
因为模型在执行新增操作前,会发送一条 SQL 语句获得表结构,如下
因为 name 字段在表结构中是不存在的,所以 save 方法是不会向数据库发送 SQL 语句的,而且 save 方法不会有任何错误提示,依然能返回 true,如下
更重要提醒 save 方法会修改调用它的对象的数据
如上,Test 类实例的 data 属性(数组)里多了一个 name ,和 save 方法新增数据库里的数据是保持一致的。 更更重要提醒 因为模型的新增方法和更新方法都是 save 方法,所以 tp5 框架有一套默认的规则来识别当前 save 方法要执行新增操作还是更新操作 1、不查询数据,直接模型对象调用 save 方法,表示新增 2、查询数据后调用 save 方法表示更新 3、save 方法传入更新条件表示更新 4、可以在执行 save 方法前执行 isUpdate ( false) 方法指定当前 save 方法执行新增操作 5、不要用同一个模型类实例执行多次 save 方法,如果确实需要多次新增,可以使用静态方法 create? 6、如果你调用 save 方法进行多次数据新增,需要注意,第二次 save 方法的时候必须使用 isUpdate ( false) ,否则会视为更新操作。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 10:32:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |