zoukankan      html  css  js  c++  java
  • THINKPHP中数据库操作返回值总结

    摘要: ThinkPHP中的ThinkModel类提供了数据库的基本CURD(Create、Update、Read及Delete),通过该类可以很便捷的进行操作。Model类及扩展类主要的方法有:Create操作: create()(非链式) 、add()、addAll() 支持的链式操作有: table

    ThinkPHP中数据库操作返回值总结

    Thinkphp中的ThinkModel类提供了数据库的基本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
  • 相关阅读:
    CF1454F Array Partition
    leetcode1883 准时抵达会议现场的最小跳过休息次数
    leetcode1871 跳跃游戏 VII
    leetcode1872 石子游戏VIII
    CF1355C Count Triangles
    CF1245D Shichikuji and Power Grid
    CF1368C Even Picture
    CF1368D AND, OR and square sum
    CF1395C Boboniu and Bit Operations
    SpringBoot和开发热部署
  • 原文地址:https://www.cnblogs.com/huhewei/p/11678181.html
Copyright © 2011-2022 走看看