## 主要采取关键字有: > update > setField > setInc > setDec > save > update ## 更新数据表中的数据 ~~~ Db::table('think_user') ->where('id', 1) ->update(['name' => 'thinkphp']); //或则根据主键更新 Db::table('think_user') ->update(['name' => 'thinkphp','id'=>1]); ~~~ ## 更新某个字段的值 ~~~ Db::table('think_user') ->where('id',1) ->setField('name', 'thinkphp'); ~~~ ## 自增或自减一个字段的值 ~~~ // score 字段加 1 Db::table('think_user') ->where('id', 1) ->setInc('score'); // score 字段加 5 Db::table('think_user') ->where('id', 1) ->setInc('score', 5); // score 字段减 1 Db::table('think_user') ->where('id', 1) ->setDec('score'); // score 字段减 5 Db::table('think_user') ->where('id', 1) ->setDec('score', 5); ~~~ ## 延迟更新 ~~~ Db::table('think_user')->where('id', 1)->setInc('score', 1, 10); ~~~ ## 查找并更新 ~~~ $user = User::get(1); $user->name = 'thinkphp'; $user->email = 'thinkphp@qq.com'; $user->save(); ~~~ ## 直接更新数据 ~~~ $user = new User; // save方法第二个参数为更新条件 $user->save([ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com' ],['id' => 1]); ~~~ ## 批量更新数据 ~~~ $user = new User; $list = [ ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'], ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'] ]; $user->saveAll($list); //或则(遍及更新) foreach($list as $data){ $user->data($data,true)->isUpdate(true)->save(); } ~~~ ## 通过数据库类更新数据 ~~~ $user = new User; $user->where('id', 1) ->update(['name' => 'thinkphp']); //或则 $user->update(['id' => 1, 'name' => 'thinkphp']); ~~~ ## 静态方法 ~~~ User::where('id', 1) ->update(['name' => 'thinkphp']); //或则 User::update(['id' => 1, 'name' => 'thinkphp']); ~~~ ## 闭包更新 ~~~ $user = new User; $user->save(['name' => 'thinkphp'],function($query){ // 更新status值为1 并且id大于10的数据 $query->where('status', 1)->where('id', '>', 10); }); ~~~