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

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

May 20, 2016 am 11:39 AM

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">-&gt;<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">-&gt;<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">)-&gt;<span class="pln">$where<span class="pun">(<span class="str">"id = 1"<span class="pun">)-&gt;<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">-&gt;<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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)