PHP静态实时更新,静态更新:update方法

静态更新数据:update( )方法

1. 源码:/thinkphp/library/think/Model.php;/**

* 更新数据

* @access public

* @param array     $data 数据数组

* @param array     $where 更新条件

* @return $this

*/public static function update($data = [], $where = []){$model  = new static();$result = $model->isUpdate(true)->save($data, $where);return $model;

}

源码分析:update()是模型类的静态方法,可用类直接调用,不必实例化;

$model = new sattic( );实例化调用这个静态方法的类,实际上就是子类,如Staff.php;

$result = $model->isUpdate(true)->save($data, $where);可见,底层仍是用save方法完成更新操作;

return $model; :注意返回值是模型对象本身,并不是save方法返回的受影响记录数量。【小提示】:模型CURD静态方法,例如:get(),all(),create(),update()等,都是返回模型对象/(数据对象)本身!

2. 参数与返回值:参数序号参数说明1$data更新数据

2$where更新条件返回值:数据对象。

3. 实例演示

一、 将tp5_staff表中,id=1007的name更新为:'马金莲';这个任务很简单,控制器:Index.php<?phpnamespace  app\index\controller;//导入自定义模型类use app\index\model\Staff;class Index {  public function index(){//1.设置更新数据   $data['id'] = 1007;  //更新条件自动识别$data['name'] = '马金莲';//2.静态调用update()执行更新操作$model = Staff::update($data);//3.查看返回值:数据对象dump($model);

}

}我们知道这个方法还有第二个参数:更新条件$where,我们现在改写一个控制器Index.php,将更新条件单独给出:<?phpnamespace  app\index\controller;//导入自定义模型类use app\index\model\Staff;class Index {  public function index(){//1.设置更新数据     $data['name'] = '马金莲';//2.设置更新条件$where['id'] = 1007;  //2.静态调用update()执行更新操作$model = Staff::update($data,$where);//3.查看返回值:数据对象dump($model);

}

}以上二种写法,执行结果安全相同:

4. 总结:推荐使用静态更新方法!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值