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

news2024/11/27 20:36:48

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

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('编辑失败');

    }

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88450.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django基于vuejs的文创产品销售平台app

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

学习Vue3 - 认识 Reactive 全家桶

reactive 用来绑定复杂的数据类型,例如:对象、数组 reactive 源码约束了我们的类型 他是不可以绑定普通的数据类型的,这样是不允许的,会报错 因此,如果绑定普通的数据类型,可以使用ref ref绑定对象或者…

计算机SCI论文,如何写吸引人的摘要? - 易智编译EaseEditing

摘要简明扼要的概括全文的主要内容,是整篇文章的精华,是编辑、审稿专家以及读者阅读文章的最先关注的部分。 一个好的摘要可以正确反映文章内容,引起编辑、审稿专家以及读者的关注。那如何写出一个好的论文摘要呢,今天小易为大家…

一种基于摩斯密码的页面加密方法(web和小程序)

1. 开始 web开发中,常有一些功能仅希望对开发、测试人员等一小部分人展示,比如测试一个小程序项目中,想让测试人员快速复制当前对应的h5页面,这时候如果页面是必须登录的,我们可以借助vconsole,然后维护一…

redis之主从切换可能有哪些问题

写在前面 本文一起看下Redis cluster 集群模式下,发生了主从切换时可能存在的问题以及应对方案。 1:主从数据不一致 主从数据不一致,是由于主从同步延迟造成的,可能的解决方案如下: 1:尽量将主从同机房…

React面试:谈谈虚拟DOM,Diff算法与Key机制

1.虚拟dom 原生的JS DOM操作非常消耗性能,而React把真实原生JS DOM转换成了JavaScript对象。这就是虚拟Dom(Virtual Dom) 每次数据更新后,重新计算虚拟Dom,并和上一次生成的虚拟dom进行对比,对发生变化的…

Ansys Zemax | 用于数字投影光学中均匀照明的蝇眼阵列

简介 在数字投影仪设计中,我们希望确保数字光源与投影图像在辐照度分布相匹配。因此,这一约束要求投影仪设计包含均匀照明的空间光调制器——通常以LCD面板的形式呈现。理论上听起来很容易,但实际上,此面板上的光源光束通常是高斯…

语音输入转文字怎么操作?分享几种语音转文字技巧

相信有不少小伙伴在整理语音文件的时候,都会有过怎样把这些语音直接转换成文字的想法吧。每次在我开完会之后,需要对会议语音进行整理时,都会产生这种想法。因为我们需要不断的去听这个会议的语音内容,这样做既费时又费力。但其实…

MATLAB生成2D和3D格网(GUI程序)

目录 一、写函数DataStructure_Fnc 二、控件属性 三、生成2D格网代码 三、生成3D格网代码 一、写函数DataStructure_Fnc 函数代码,生成三角网需要调用此函数 function DataStructureDataStructure_Fnc(Table) [row col]size(Table); Table(1:end,5:7)-1; for j1…

【配置指导】如何配置dataFEED edgeConnector Siemens以实现西门子PLC与阿里云之间的双向通信

本配置指导手册介绍了如何配置dataFEED edgeConnector Siemens,以通过MQTT来将西门子S7-1200 PLC数据上传到阿里云;以及从阿里云发布数据,并传输到PLC中,从而实现西门子S7-1200 PLC与阿里云之间的双向通信。 主要内容包括&#xf…

30-Vue之ECharts-直角坐标系的常用配置

直角坐标系的常用配置前言直角坐标系常用配置网格坐标轴区域缩放前言 本篇来学习下直角坐标系的常用配置 直角坐标系 直角坐标系的图表指的是带有x轴和y轴的图表, 常见的直角坐标系的图表有: 柱状图 折线图 散点图 常用配置 网格 grid:是用来控制直角坐标系的…

可落地的、不基于框架的分布式事务解决方案

两阶段提交 2PC 在MySQL InnoDB中,为了保证Bin Log和Redo Log的一致性,便采用了两阶段提交;ZooKeeper、ETCD集群为了保证数据一致性,也采用了两阶段提交,RocketMQ的事务消息也采用了两阶段提交,可见两阶段…

从VirtualBox换成KVM虚拟机管理程序?

好消息是,您可以轻松地将VDI格式的VirtualBox VM迁移到qcow2(即KVM的磁盘映像格式),不用创建新的KVM来宾计算机。 我们在本文中将概述如何将VirtualBox VM迁移到Linux中KVM VM的逐步过程。 第一步:列出现有的VirtualBox映像 首先&#xff0c…

泰斯公式Thiem’s equation地下水

基本形式 泰斯公式1描述了在含水层抽水时的地下水流动。 多井作业时非承压含水层的方程形式如下 H(s)和H0(s)分别表示s点的估计地下水位和初始地下水位,K表示水力导率,ri表示预测位置与贡献井i之间的距离,n是贡献井的集合,Q表…

Win11 21H2 12月最新更新了哪些内容?

微软今天发布了12月最新的累积更新补丁,用户可以升级KB5021234将版本号提升至 build 22000.1335,并解决了远程网络问题以及可能影响数据保护应用程序编程接口 (DPAPI) 解密的问题。此外,该更新还包括之前在 11 月 15 日…

11-FreeRTOS配置函数 FreeRTOSConfig.h

1-FreeRTOSConfig.h介绍 FreeRTOS中的相关定义多数都在FreeRTOSConfig.h中,整个FreeRTOS的定义调用都可以在这里定义,当然你也可以自己命名一个文件实现自定义。 下面是这个文件的内容,如下: #ifndef FREERTOS_CONFIG_H #define…

Graph Neural Networks for Social Recommendation学习笔记

1 目标 学习user embedding和item embedding。 2 框架 3 用户建模 3.1 利用历史记录对用户建模 3.2 利用社交关系对用户建模

10.9.1-Dataway+Echarts动态图表方案

文章目录1. 技术选型2. 实现方案2.1. 方案介绍2.2. 方案实现(demo)2.2.1. 使用echarts绘制html静态页2.2.1.1. 选择合适的图表2.2.1.2. 下载html demo2.2.2. 使用Dataway准备数据接口2.2.2.1. 部署dataway2.2.2.2. 创建数据接口2.2.3. 调试html demo da…

代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和

代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效…

【洞察人性】 理解行为背后的动机

《洞察人性》 关于作者 阿尔弗雷德•阿德勒,奥地利精神病学家, 人本主义心理学先驱,曾经在美国哥伦比亚大学任客座教授。同时他也是个体心理学的创始人,在学术界拥有重要的地位。著作有《自卑与超越》《人性的研究》 《洞察人性…