ThinkPHP3.2.3更新字段时,如果只是更新个别字段的值,可以使用setField
方法。
使用示例:
$User = M("User"); // 实例化User对象 // 更改用户的name值 $User-> where('id=5')->setField('name','lrmb.net');
setField方法支持同时更新多个字段,只需要传入数组即可,例如:
$User = M("User"); // 实例化User对象 // 更改用户的name和email的值 $data = array('name'=>'lrmb.net','email'=>'ThinkPHP@gmail.com'); $User-> where('id=5')->setField($data);
而对于统计字段(通常指的是数字类型)的更新,系统还提供了setInc
和setDec
方法。
$User = M("User"); // 实例化User对象 $User->where('id=5')->setInc('score',3); // 用户的积分加3 $User->where('id=5')->setInc('score'); // 用户的积分加1 $User->where('id=5')->setDec('score',5); // 用户的积分减5 $User->where('id=5')->setDec('score'); // 用户的积分减1
3.2.3版本开始,setInc和setDec方法支持延迟更新,用法如下:
$Article = M("Article"); // 实例化Article对象 $Article->where('id=5')->setInc('view',1); // 文章阅读数加1 $Article->where('id=5')->setInc('view',1,60); // 文章阅读数加1,并且延迟60秒更新(写入)