A-A+

Thinkphp使用setField更新多个字段

2018年01月05日 PHP开源系统 暂无评论 阅读 0 views 次

在使用 Thinkphp中,setField是使用较多的一个函数,我通常是使用这个函数来更新单个字段的,非常好用,这天突然想到能否使用 setField更新多个指定字段,当然更新多个字段的话还是建议使用 save,这里仅为学习一下setField 的多个用法。

先看一下setField单个字段的更新,就很简单了,如下:

  1. public function update(){  
  2.     header("Content-Type:text/html; charset=utf-8");  
  3.     $Dao = M("User");  
  4.   
  5.     $result = $Dao->where('uid = 2')->setField('email','Jack@163.com');  
  6.   
  7.     if($result !== false){  
  8.         echo '数据更新成功!';  
  9.     }else{  
  10.         echo '没更新任何数据!';  
  11.     }  
  12. }  

相当于sql语句:UPDATE user SET email='Jack@163.com' WHERE uid = 2

再来看一下使用 setField 更新多个字段的应用,代码如下:

  1. public function update(){  
  2.     header("Content-Type:text/html; charset=utf-8");  
  3.     $Dao = M("User");  
  4.   
  5.     $result = $Dao->where('uid = 28')->setField(array('username','email'),array('Jack','Jack@163.com'));  
  6.   
  7.     if($result !== false){  
  8.         echo '数据更新成功!';  
  9.     }else{  
  10.         echo '没更新任何数据!';  
  11.     }  
  12. }  

多个字段的更新就需要传入多个数组,其实使用也是非常简单的,另外setField() 不可以像 save() 方法一样,以构造数据数组的方式传入 setField(),而需要将需要更新的字段与值分别传入 setField() 方法中。

标签:

给我留言