正文 639字数 483,170阅读

经常有需要对某个数据表的计数字段进行加减操作,我们来看下在ThinkPHP中的具体使用办法。
最简单的,使用下面方法对score自动加1:
M('User')->where('id=5')->setInc('score');
Run code
Cut to clipboard

    当然,也可以加更多的积分:
    M('User')->where('id=5')->setInc('score',5);
    Run code
    Cut to clipboard

      当然也可以减1操作
      M('User')->where('id=5')->setDec('score');
      Run code
      Cut to clipboard

        setInc和setDec方法只能单独对一个字段进行操作,如果你的字段加减操作要和其他字段的更新一起的话,则需要采用表达式更新的方式了,例如:
        $User = M('User'); $User->id = 5; $User->nickname = 'ThinkPHP'; $User->score = array('exp','score+5'); $User->save();
        Run code
        Cut to clipboard

          表示对id为5的用户数据进行昵称和积分修改操作。
          $User->score = array('exp','score+5');
          Run code
          Cut to clipboard

            这段代码就称之为表达式更新。