> 官网手册 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');
}
}
~~~
- 基础知识
- 查询数据
- 添加数据
- 更新数据
- 删除数据
- 批量删除
- 编辑器的使用
- wangEditor的使用
- UEditor的使用
- ckeditor5的使用
- 图片上传
- 单图上传
- 多图上传
- 支付方式
- paypal
- paypal新版接入
- Excel导入导出
- PHPExcel 导出
- 标签扩展
- 闭合标签
- 非闭合标签
- 邮件发送
- 阿里云短信发送
- 物流查询
- 合成海报
- TP6.0根据IP获取国家代码
- TP6.0集成腾讯云短信
- TP6.0缓存的应用
- TP6.0集成JSON Web(JWT)
- TP6.0集成apiDoc 快速完成接口文档
- TP6.0集成pjax
- 微信支付apiv3的异步通知如何验证和接收
- PHP签名认证
- TP6.0获取最新省市县三级数据并入库
- PHP指定版本运行Composer
- linux端口占用查询与处理