ThinkPHP的数据更新操作包括更新数据和更新字段方法。
更新数据使用save
方法
数据没变,提交更新,返回false; 数据变,提交更新,返回true; 返回的不是false 而是0 你要用恒等判断 是否提交失败
$user=M('user'); $data['username'] = 'oooooooooooo'; $data['password'] = 'xxxxxxxxxxxx'; $map['id']=4; $user->where($map)->save($data); //默认主键为条件 $data['id']=5; $data['username'] = 'tttttt'; $data['password'] = 'qqqqqq'; $user->save($data); //结合create,id也表单传过来时 $user->create(); $user->save();//返回值0:没修改,1:返回成功
save方法的返回值是影响的记录数,如果返回false则表示更新出错,因此一定要用恒等来判断是否更新失败。如果id是数据表的主键的话,系统自动会把主键的值作为更新条件来更新其他字段的值。
更新字段
如果只是更新个别字段的值,可以使用setField
方法。
//修改某一个字段值 $map['id']=1; $user->where($map)->setField('username','heihei'); //统计累加累减 count是一个为int的字段名 $map['id']=1; $user->where($map)->setInc('count',1);//累加 $user->where($map)->setDec('count',1);//累减
因此要使用 save() 方法更新数据,必须指定更新条件或者更新的数据中包含主键字段。