setField()
ThinkPHP setField() 方法用于更新个别字段的值。
例子:
public function update(){ header("Content-Type:text/html; charset=utf-8"); $Dao = M("User"); $result = $Dao->where('uid = 2')->setField('email','Jack@163.com'); if($result !== false){ echo '数据更新成功!'; }else{ echo '没更新任何数据!'; } }
上面例子执行的 SQL 语句为:
UPDATE user SET email='Jack@163.com' WHERE uid = 2
更新多个字段
setField() 方法支持同时更新多个字段,只需要传入数组参数即可:
public function update(){ header("Content-Type:text/html; charset=utf-8"); $Dao = M("User"); $result = $Dao->where('uid = 28')->setField(array('username','email'),array('Jack','Jack@163.com')); if($result !== false){ echo '数据更新成功!'; }else{ echo '没更新任何数据!'; } }
提示
setField() 方法的语法为:
setField(fields, value, condition='')
因此 setField() 不可以像 save() 方法一样,以构造数据数组的方式传入 setField(),而需要将需要更新的字段与值分别传入 setField() 方法中。
参考阅读
- MySQL Update Set 更新数据
- ThinkPHP getField():获取某个字段的值或多个字段的索引数组
- ThinkPHP getBy动态查询