1.查找并更新
1)获取该条数据,并更改字段后更新数据
~~~
$user = User::get(1);
$user->name = 'zhangsan';
$user->age = 18;
$user->save();
~~~
2.直接更新数据
~~~
$user = new User;
//save方法第二个参数为更新条件
$user->save([
'name'=>'zhangsan',
'age'=>18
],['id'=>1]);
~~~
* 过滤非表中的字段
~~~
$user = new User();
//过滤post数组中非数据表字段
$user->allowField(true)->save($_POST,['id'=>1]);
~~~
* 指定写入字段
~~~
$user = new User();
//指定post数组中只有name和age字段会写入
$user-allowField(['name','age'])->save($_POST,['id'=>1]);
~~~
3.批量更新数据
~~~
~~~
$user = new User();
$list = [
['name'=>'zhangsan','age'=>18],
['name'=>'lisi','age'=>19]
];
$user->saveAll($list);
echo User::getLastSql();
~~~
~~~
4.数据库类更新数据
~~~
//无法使用模型的事件功能
$user = new User;
$user = where('id',1)->update(['name'=>'zhangsan']);
//或者
$user = new User;
$user->update(['id'=>1,'name'=>'zhangsan']);
~~~
5.静态方法
~~~
User::where('id',1)->update(['name'=>'zhangsan']);
//或者
User::update(['id'=>1,'name'=>'zhangsan']);
~~~
6.闭包更新
~~~
$user = new User;
$user->save(['name'=>'thinkphp'],function(){
//更新的条件
$query->where('status',1)->where('id','>',10);
});
~~~