Home >php教程 >php手册 >【转】ThinkPHP中数据库操作返回值总结 - 一只小青瓜

【转】ThinkPHP中数据库操作返回值总结 - 一只小青瓜

WBOY
WBOYOriginal
2016-05-20 11:39:261128browse

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

2、Create操作

  1. create 返回值:
    1. 若发生错误,返回false;
    2. 成功则返回创建的数据
      create为非链式操作,返回值为可能为布尔值,所以操作时要进行严格判断:
      1. <span class="pln">$User <span class="pun">=<span class="pln"> M<span class="pun">(<span class="str">"User"<span class="pun">);</span></span></span></span></span></span>
      2. <span class="kwd">if<span class="pun">(<span class="pln">$User<span class="pun">-><span class="pln">create<span class="pun">()){</span></span></span></span></span></span>
      3. <span class="com">//进行更多操作</span>
      4. <span class="pun">}</span>
  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

 

出处:http://www.baiwar.com/post/thinkphp-database-operations-in-the-return-value.html

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn