ThinkPHP5实用的数据库操作方法【持续更新】

血红的双手。 提交于 2019-11-28 22:45:06

1、update方法总结

  /**
     * 设置记录的某个字段值
     * 支持使用数据库字段和方法
     * @access public
     * @param string|array $field 字段名
     * @param mixed        $value 字段值
     * @return integer
     */
    function setField($field, $value = ''){};
    //设置某个字段的值,适用场景:适用于用户积分清零、余额清零等类似操作
    Db::name('table')->where('id',1)->setField('field',0);
 

/**
     * 字段值(延迟)增长
     * @access public
     * @param string  $field    字段名
     * @param integer $step     增长值
     * @param integer $lazyTime 延时时间(s)
     * @return integer|true
     * @throws Exception
     */
    public function setInc($field, $step = 1, $lazyTime = 0){};
    //自增某个字段的值,参数2不传时默认为自增1,适用场景:适用于用户积分增加、余额增加等类似操作,需要延时更新则传入第三个参数(单位秒),
    Db::name('table')->where('id',1)->setInc('field',2);

/**
     * 字段值(延迟)减少
     * @access public
     * @param string  $field    字段名
     * @param integer $step     减少值
     * @param integer $lazyTime 延时时间(s)
     * @return integer|true
     * @throws Exception
     */
    public function setDec($field, $step = 1, $lazyTime = 0){};
    //自减某个字段的值,参数2不传时默认为自减1,适用场景:适用于用户积分扣除、余额扣除等类似操作,需要延时更新则传入第三个参数(单位秒),
    Db::name('table')->where('id',1)->setDec('field',2);

//自增或自减多个字段的值,raw方法内支持SQL函数,适用场景:适用于同时更新用户累计余额、当前余额等类似操作
    Db::name('table')->where('id',1)->update([
        'total_remain' => Db::raw("total_remain+100"),
        'remain'       => Db::raw("remain+100"),
    ]);

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!