> 官网手册[https://www.kancloud.cn/manual/thinkphp5\_1/354002](https://www.kancloud.cn/manual/thinkphp5_1/354002)
## 官方推荐写法如下
~~~
Db::name('user')
->where('id', 1)
->update(['name' => 'thinkphp']);
~~~
通常会这样写
~~~
Db::name('user')
->update(['name' => 'thinkphp','id'=>1]);
~~~
生成的SQL语句
~~~
UPDATE `think_user` SET `name`='thinkphp' WHERE `id` = 1
~~~
更新某个字段的值
~~~
Db::name('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);
~~~
`setInc/setDec`支持延时更新,如果需要延时更新则传入第三个参数,下例中延时10秒更新。
~~~
Db::name('user')->where('id', 1)->setInc('score', 1, 10);
~~~
## 更新数据完整示例
更新数据页面一般由两部分组成,一部分用于展示要更新的表单字段,一部分用于处理更新的逻辑并返回结果。以下代码为直接在控制器中进行逻辑处理的方式,虽不建议如此写,但却是学习ThinkPHP最快的方式。
~~~
//修改
public function edit(){
if(request()->isPost()) {
//获取提交的数据
$data=input('post.');
//$data = Request::except('file');
//某些字段的为空判断
if(empty($data['email']) ){
$this->error('请填写邮箱账号');
}
$result = db('users')->where('id', $data['id'])->update($data);
if($result){
$this->success('修改成功!','index');
}else{
$this->error('修改失败!');
}
}else{
//查找数据并显示,用于提交表单
$id = input('id');
$info = db('users')->where('id',$id)->find();
$this->assign('info', $info);
return view('add');
}
}
~~~
- 序言
- ThinkPHP官方资源
- 术语
- 根目录
- php术语
- jwt
- 下载jwt
- 认识jwt
- 生成token
- 验证token
- lcobucci/jwt
- 安装
- 配置
- 生成token
- 解析令牌
- 验证令牌
- 扩展库jwt
- thinkPHP使用lcobucci/jwt
- phpmailer
- PHPMailer的使用
- phpMailer config
- 短信验证吗
- 阿里云短信验证码发送类
- 权限管理
- 基于thinkphp6.0
- 通用函数
- 密码加密
- 数组
- 数据库
- 查询数据
- 添加数据
- 删除数据
- 批量删除
- 更新数据
- 请求流程
- thinkphp6安装
- thinkphp6目录介绍
- 单应用
- 多应用
- 配置文件
- 模型,模板与Model的区别
- .env介绍
- 入口文件
- 控制器
- model层
- 视图层
- common公共函数
- 路由
- 命令行
- 常用thinkphp函数和方法
- 高德地图i定位城市
- 更新日志