12月14日:跟着猫叔写代码api中的增删改查

首先在数据库中建立一个学生成绩信息表

DROP TABLE IF EXISTS `bro_ceshiapi`;
CREATE TABLE `bro_ceshiapi` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name` varchar(100) DEFAULT NULL COMMENT '姓名',
  `class` varchar(100) DEFAULT NULL COMMENT '班级',
  `score` decimal(10,2) DEFAULT NULL COMMENT '分数',
  `number` int(11) DEFAULT NULL COMMENT '学号',
  `createtime` int(11) DEFAULT NULL COMMENT '创建时间',
  `updatetime` int(11) DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

然后在api的demo控制器中新建方法

api添加测试方法

 目前api是未登录没有权限状态,这时需要我们去调用api中user控制器中登录方法

调用登录方法

 此时报错参数不正确,这时我们就不能使用网页api测试,需要使用到apipost工具进行登录测试

登录接口需要传递代码中的字段
添加之前需要传入登录的token才可进行操作

 开始添加数据

 //添加
    public function stu_add(){
        //初始化request
      //  $request = Request::instance();
        $params = $this->request->param();
        //写入数据
        $res = Db::name('ceshiapi')->insert($params);
        $this->success('ok',$res);
    }

 参数要跟表中字段一致,否则会报错

测试接口根据单个条件新增数据

 错误

测试接口错误

 批量添加

//批量添加
    public function stu_addMore(){
        //批量添加一般传入的数据都为数组
        $params = $this->request->param('arr/a');

       //查看当前参数传入数据
       $this->success('ok',$params);
}
根据array添加数据

 上述虽然成功但是并没有打印出传入参数数据

测试接口新增数据

 完整的增加

 //批量添加
    public function stu_addMore(){
        //批量添加一般传入的数据都为数组
        $params = $this->request->param('arr/a');

       //查看当前参数传入数据
       //$this->success('ok',$params);
       //判断当前传入数据是否为数组形式
        if (!is_array($params)){
            $this->error('数据格式错误');
        }

        try {
            //批量添加数据
            $res = Db::name('ceshiapi')->insertAll($params);

            if ($res){
                $this->success("插入成功".$res."条",$res);
            }else{
                $this->error('插入失败');
            }
        }catch (Exception $e){
            $this->error('插入失败',$e->getMessage());
        }

    }
测试接口批量新增数据

 查询数据

//查询数据
    public function get_stu(){
        $data = model('admin/Ceshiapi')->select();
        $this->success('ok',$data);
    }
测试接口查询数据

 业务场景:根据条件进行查询

//查询数据
    public function get_stu(){
        //参数传递字段name
        $name = input('name','');
        $class = input('class','');
        $where = [];
        if ($name){
            $where['name'] =['like',"%$name%"];
        }
        if ($class){
            $where['class'] =['like',"%$class%"];
        }
        $data = model('admin/Ceshiapi')->where($where)->select();
        $this->success('成功',$data);
    }
测试接口根据条件查询

 删除数据


    //删除数据,根据id单个删除
    public function del_stu(){
        $id = input('id','');

        if (!$id){
            $this->error('缺少参数id');
        }

       $res =  model('admin/Ceshiapi')->where('id',$id)->delete();
        if ($res){
            $this->success('删除成功',$res);
        }
        $this->error('删除失败',$res);
    }
//删除数据,根据ids批量删除
    public function del_stu_ids(){
        $ids = input('ids/a',[]);
//        if (!$id){
//            $this->error('缺少参数id');
//        }
        $res =  model('admin/Ceshiapi')->where('id','in',$ids)->delete();
        if ($res){
            $this->success('删除成功',$res);
        }
        $this->error('删除失败',$res);
    }
//删除数据,根据name多个删除
    public function del_stu_byName(){
        $name = input('name','');

        if (!$name){
            $this->error('缺少参数name');
        }

        $res =  model('admin/Ceshiapi')->where('name','like',"%$name%")->delete();
        if ($res){
            $this->success('删除成功',$res);
        }
        $this->error('删除失败',$res);
    }

更新数据

//编辑数据,根据id编辑
    public function edit_stu(){
        $id = input('id/d',0);
        $name = input('name','');
        if (!$id){
            $this->error('当前没有传入参数id');
        }

        $res = model('admin/Ceshiapi')->where('id',$id)->update(['name' =>$name,'updatetime'=>time()]);
        if ($res){
            $this->success('编辑成功',$res);
        }
        $this->error('编辑失败');

    }

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值