ThinkPHP中数据库操作返回值总结[通俗易懂]

转载自:ThinkPHP中数据库操作返回值总结关键字:  Thinkphp,返回值,数据库操作,select返回值,add返回值,setDec返回值Thinkphp中的Think\Model类提供了数据库的基本CURD(Create、Update、Read及Delete),通过该类可以很便捷的进行操作。Model类及扩展类主要的方法有:Create操作:create(

大家好,又见面了,我是你们的朋友全栈君。

转载自:ThinkPHP中数据库操作返回值总结

关键字:   Thinkphp,返回值,数据库操作,select返回值,add返回值,setDec返回值

Thinkphp中的Think\Model类提供了数据库的基本CURD(Create、Update、Read及Delete),通过该类可以很便捷的进行操作。
Model类及扩展类主要的方法有:

  1. Create操作:
    create()(非链式) 、add()、addAll()
    支持的链式操作有:
    table 、data、field 、relation 、validate、auto 、filter、scope 、bind 、token 、comment
  2. Update操作
    save()、setField()、setInc()、setDec()
    支持的链式操作有:
    where、table 、alias、field、order、lock 、relation 、scope 、bind 、comment
  3. Read操作
    find()、select()、getField()、Count 、Max、Min 、Avg 、Sum
    支持的链式操作有:
    where 、table 、alias 、field 、order、group 、having 、join 、union 、distinct、lock、cache 、relation 、result 、scope 、bind 、comment
  4. Delete操作
    delete()
    支持的链式操作有:
    where 、table 、alias 、order、lock 、relation 、scope 、bind 、comment

这些方法的可能的返回值有false/true/一位数组/二维数组/numeric(数字)/null/类本身的实例,现在就总结如下:

1、链式操作:

所以链式操作都返回Model类的实例,即可以使用该返回值继续调用实例方法。

 
 
 
  1. $User=M("User");
  2. $U1=$User->$where("id = 1");//$U1可以继续调用其他方法。
  3. $result=$U1->select();
  4. //-------一般情况下没有必要这样,下面一句代码即可实现
  5. $result=M("User")->$where("id = 1")->select();

2、Create操作

  1. create 返回值:
    1. 若发生错误,返回false;
    2. 成功则返回创建的数据
      create为非链式操作,返回值为可能为布尔值,所以操作时要进行严格判断:
           
           
           
      1. $User = M("User");
      2. if($User->create()){
      3. //进行更多操作
      4. }
  2. add 返回值,addAll 返回值
    1. 成功:如果主键是自动增长型,返回值为新增记录Id值(addAll为最大值),否则返回true;
    2. 发生错误返回 false;

3、update操作

  • save 返回值(setField、setInc、setDec最后调用的都是save方法,所以返回值与save一致):
    save 返回值是影响的记录数(有可能为0),更新出错返回false,因此一定要用恒等来判断是否更新失败。

4、read操作

  1. find 返回值
    如果查询出错,find的返回值为false
    如果查询结果为空返回NULL,查询成功则返回一个关联数组(键值是字段名或者别名)。
  2. select 返回值
    如果查询出错,select的返回值是false,
    如果查询结果为空,则返回NULL,否则返回二维数组。
  3. getField 返回值
    1. 如果查询出错,getField的返回值为false
    2. 查询成功:
      1. getField($field):$field为一个字段,返回数据库中该字段的第一行的值
      2. getField($field,true):$field为一个字段,返回包含该字段的一维数组
      3. getField($fields):$fields为两个字段(以“,”隔开),返回array($field1=>$field2)的数组;若$field为多个字段,返回类似select的多维数组,键名为field1。
      4. getField($fields,”:”):$field为多个字段,返回类似array($field1=>”$field2:$field3”)的数组
  4. Count 、Max、Min 、Avg 、Sum返回值
    如果查询出错,返回值为false
    查询成功,则返回对应的值

5、Delete操作

  • delete 返回值:成功则返回true,查询错误则返回false

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129768.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RPM Spec File Reference

    RPM Spec File Reference

    2021年8月19日
    58
  • 具有指令流水线结构的cpu_cpu流水线技术

    具有指令流水线结构的cpu_cpu流水线技术为什么小小一个CPU,有那么多周期(Cycle)?程序的性能,是由三个因素相乘来衡量的,“指令数×CPI×时钟周期”。和周期相关的只有一个时钟周期,即CPU主频的倒数。一个CPU的时钟周期可以认为是可以完成一条最简单的计算机指令的时间。那为何构造CPU时,有那么多周期?单指令周期处理器一条CPU指令的执行,由FDE三步组成。这个执行过程,至少需花费一个时钟周期。因为在取指令的时候,我们需要通过时钟周期的信号,来决定计数器的自增。很自然,我们希望能确保让这样一整条指令的执行,在一个时钟周期内完成

    2022年8月20日
    8
  • Web.xml的加载过程

    Web.xml的加载过程Web.xml的加载过程

    2022年6月17日
    25
  • pytest 执行用例_测试用例执行结果有哪些

    pytest 执行用例_测试用例执行结果有哪些前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

    2022年7月29日
    2
  • 关闭防火墙 linux_linux系统防火墙关闭

    关闭防火墙 linux_linux系统防火墙关闭抛开实际生产环境个人平时练习的时候安装虚拟机可能遇到过很多坑就很烦,可能很大一部分原因都是防火墙没关掉哈哈哈哈所以建议永久性关闭防火墙下面是CentOs7关闭防火墙的命令!1:查看防火状态systemctlstatusfirewalld如果是这样就开着呢如果是这样就是关着2:暂时关闭防火墙systemctlstopfirewalld3:重启防火墙systemctlenablefirewalld5:永久关闭后重启Linux永久关闭防火墙firewalld和selli

    2022年9月6日
    4
  • 基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】

    基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】资源下载:https://download.csdn.net/download/weixin_44893902/33163160一、语言和环境1.实现语言:JAVA语言。2.环境要求:MyEclipse/Eclipse+Tomcat+MySql。3.使用技术:SpringMVC+Spring+Mybatis。二、实现功能随着校内图书馆的发展,现需要制作图书信息管理系统,主要功能如下:1.首页默认显示所有图书信息2.鼠标悬停某行数据时,以线性过渡动画显示光棒效果3.用.

    2022年6月3日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号