thinkphp save(update) 使用列名=列名+1 a=a+1

来源:互联网 发布:sql2012还原数据库 编辑:程序博客网 时间:2024/06/06 23:15

普通的写法

$model-where('条件')->save(array('status'=>0));

可是无法实现 使用列名,因为
array('status'=>'status+1');

Thinkphp 会吧status+1 当成字符串处理


看下源码吧,记得有一个setInc 的方法可以实现

    /**     * 字段值增长     * @access public     * @param string $field  字段名     * @param integer $step  增长值     * @return boolean     */    public function setInc($field,$step=1) {        return $this->setField($field,array('exp',$field.'+'.$step));    }


仿照他的写法就可以了

array('balance'=>($balance-$needMoney),                            'consume_money'=>array('exp','consume_money+'.$needMoney)),


0 0