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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数学的本质

    数学的本质数学的本质李国伟现代数学在方法上的特征现代数学在方法上最明显的特色是它的演绎性,就是由基本定义与公理出发,经逻辑推论到所有定理的发展方式。采取这种方法并非偶然,而是有内在的需求。我们要把一套概念讲清楚,必须用比较简单的概念来解释,但是这些概念又需要再加澄清,如此继续下去,如果不曾周而复始得到一个什么也说不清的恶性循环,便会无限延伸下去,达到一个不可知的前端。人类寻求知识的目的在组织自己

  • MySQL的binlog日志详解

    binlog就是binarylog,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架构人员来讲是非常重要的。MySQL5.7这个版本默认是不开启binlog日志的,具体的开启方式可以查看https://blog.csdn.net/king_kgh…

  • Proxy实现mysql读写分离

    1.mysql实现读写分离的方式mysql实现读写分离的方式有以下几种:程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助。amoeba,直接实现读写分离和负载均衡,不用修改代码,有很灵活的数据解决方案,自己分配账户,和后端数据库权限管理独立,权限处理不够灵活。mysql-proxy,直接实现读写分离和负载均衡,不用…

  • charles导致mac无法上网_手机能上网mac不能上网

    charles导致mac无法上网_手机能上网mac不能上网前言charles关闭后,发现网页突然打开了,那大概率是设置了代理,但明明已经关闭了charles,这是由于mac网络偏好设置中,使用的是手动代理,将其改为自动即可解决方法1打开网络偏好设置,

  • Windows DIB文件操作具体解释-4.使用DIB Section

    Windows DIB文件操作具体解释-4.使用DIB Section

  • 宝塔卸载命令_linux如何永久停用mysql

    宝塔卸载命令_linux如何永久停用mysql宝塔面板(linux)卸载方法及卸载后文件删除我们说过很多宝塔面板的教程,貌似没说过如何卸载宝塔面板,假如我们装置一款面板,都会请求要洁净纯洁的系统,就是说,假如你装置过环境可能会招致装置不胜利。宝塔面板能够装置,当然也能够卸载,官方也给出了卸载脚本,今天把这些办法罗列下写在这里。一:脚本卸载你需要先在面板中将通过面板安装的所有软件卸载,如nginx、mysql、php等等,然后,进入SSH…

发表回复

您的电子邮箱地址不会被公开。

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