標籤:update 批次更新 條件 style stat 庫類 field each 遍曆
1、在取出資料後,更改欄位內容後更新資料
$user = User::get(1);$user->name = ‘thinkphp‘;$user->email = ‘[email protected]‘;$user->save();
2、直接帶更新條件來更新資料
$user = new User;// save方法第二個參數為更新條件$user->save([ ‘name‘ => ‘thinkphp‘, ‘email‘ => ‘[email protected]‘],[‘id‘ => 1]);
3、過濾非資料表欄位的資料
$user = new User();// 過濾post數組中的非資料表欄位資料$user->allowField(true)->save($_POST,[‘id‘ => 1]);
4、通過外部提交賦值給模型,並且希望指定某些欄位寫入
$user = new User();// post數組中只有name和email欄位會寫入$user->allowField([‘name‘,‘email‘])->save($_POST, [‘id‘ => 1]);
5、saveAll方法批次更新資料
$user = new User;$list = [ [‘id‘=>1, ‘name‘=>‘thinkphp‘, ‘email‘=>‘[email protected]‘], [‘id‘=>2, ‘name‘=>‘onethink‘, ‘email‘=>‘[email protected]‘]];$user->saveAll($list);
7、通過遍曆批次更新資料
$user = new User;$list = [ [‘id‘=>1, ‘name‘=>‘thinkphp‘, ‘email‘=>‘[email protected]‘], [‘id‘=>2, ‘name‘=>‘onethink‘, ‘email‘=>‘[email protected]‘]];foreach($list as $data){ $user->data($data,true)->isUpdate(true)->save();}
8、通過資料庫類更新資料(兩種形式)
$user = new User;$user->where(‘id‘, 1) ->update([‘name‘ => ‘thinkphp‘]);$user = new User;$user->update([‘id‘ => 1, ‘name‘ => ‘thinkphp‘]);
9、靜態方法直接更新資料(兩種形式)
//第一種形式User::where(‘id‘, 1) ->update([‘name‘ => ‘thinkphp‘]);//第二種形式User::update([‘id‘ => 1, ‘name‘ => ‘thinkphp‘]);
10、閉包函數使用更複雜的更新條件
$user = new User;$user->save([‘name‘ => ‘thinkphp‘],function($query){ // 更新status值為1 並且id大於10的資料 $query->where(‘status‘, 1)->where(‘id‘, ‘>‘, 10);});
11、自動識別主鍵更新
// 執行個體化模型$user = new User;// 顯式指定更新資料操作$user->isUpdate(true)->save([‘id‘ => 1, ‘name‘ => ‘thinkphp‘]);
ThinkPHP5.0 模型更新操作