前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >webman框架实操之数据库写入和修改

webman框架实操之数据库写入和修改

原创
作者头像
快乐的小白
发布2024-09-12 17:58:38
1180
发布2024-09-12 17:58:38
举报
文章被收录于专栏:webman

想知道webman是啥的或者需要看安装教程的,可以订阅这个专栏,我会不定时去补充这个专栏的文章。也欢迎大佬对这个栏目进行文章补充。

webman框架专栏地址

https://cloud.tencent.com/developer/column/103665

一,实际操作

在上几篇文章中,已经将webman框架的搭建,数据库和请求,都已经完成了学习。那么在日常的开发中,接收数据并写入到数据库,是肯定需要的,下面就开始操作,如何接收到数据请求,然后写入到数据库里。

1.打开宝塔面板,进入webman框架所在的根目录,在终端里输入php start.php start去启动webman。

2.启动完成后,还是进入/app/controller/TimeControl.php文件,进行代码的调试。

3.新建一个database方法,用于调试数据库写入。还是用昨天的$request->all();助手函数来接收数据

代码语言:txt
复制
        public function database(Request $request)
    {
        $get =$request->all();
        return json([
            'code' => 0,
            'msg' => 'ok',
            'data' => $get
        ]);
    }

4.在对这个database方法进行编辑,添加一个name的get传参接收。

代码语言:txt
复制
        public function database(Request $request)
    {
        $get =$request->all();
        return json([
            'code' => 0,
            'msg' => 'ok',
            'data' => $get['name']
        ]);
    }
测试结果如下
测试结果如下

6.完成了接收后,那么就是写入了,在上篇的数据库配置文章,我们就已经创建了一个表了,customer表有三个字段一个id自增,然后就是uid和username了。那么我们就再写一个参数用于接收uid,然后对代码进行一个小小调整,加入一个if判断,判断是否写入成功。

代码语言:txt
复制
public function database(Request $request)  
{  
    $get = $request->all();  
    $result = Db::table('customer')->insert([  
        'uid' => $get['uid'],  
        'username' => $get['name'],  
    ]);  

    if ($result) {
        return json([  
            'code' => 0,  
            'msg' => '写入成功',  
            'data' => $get['name']  
        ]);  
    } else {
        return json([  
            'code' => -1,  
            'msg' => '写入失败',  
            'data' => null  
        ]);  
    }
}
提示写入成功
提示写入成功
数据库也写入成功
数据库也写入成功

7.上面就是数据库的写入,那么如果我们需要对数据进行修改呢,比如说我们以这个uid为唯一的话,如果传过来相同的uid,但是name不一样,就需要修改name为最新的。

代码语言:txt
复制
public function database(Request $request)    
{    
    $get = $request->all();    
    // 检查数据库中是否存在相同的 uid
    $existingRecord = Db::table('customer')
        ->where('uid', $get['uid'])
        ->first();

    if ($existingRecord) {
        // 如果存在,更新对应的 username
        $updateResult = Db::table('customer')
            ->where('uid', $get['uid'])
            ->update(['username' => $get['name']]);

        if ($updateResult) {
            return json([    
                'code' => 0,    
                'msg' => '更新成功',    
                'data' => $get['name']    
            ]);    
        } else {
            return json([    
                'code' => -1,    
                'msg' => '更新失败',    
                'data' => null    
            ]);    
        }
    } else {
        // 如果不存在,插入新记录
        $insertResult = Db::table('customer')->insert([    
            'uid' => $get['uid'],    
            'username' => $get['name'],    
        ]);    

        if ($insertResult) {
            return json([    
                'code' => 0,    
                'msg' => '写入成功',    
                'data' => $get['name']    
            ]);    
        } else {
            return json([    
                'code' => -1,    
                'msg' => '写入失败',    
                'data' => null    
            ]);    
        }
    }
}
更新成功
更新成功
数据更新成功
数据更新成功

8.以上就是数据接收进一步扩展了,接收到数据后进行数据库的写入和数据库的更新,

二,注意事项

1.每次学习时,最好是打开两个窗口,一个窗口来启动webman,另一个窗口去编辑文件。

三,结语

我们深入探讨了在Webman框架下,如何处理数据库中的更新与插入操作,特别是如何先检查数据是否存在,再决定进行更新或插入。通过这段代码示例,我们不仅了解了如何灵活地操作数据库,还见识了如何优雅地处理流程分支,确保逻辑的清晰和代码的高效。

在这一方法中,我们首先使用Db::table()->where()->first()来查询数据库中是否已存在与传入uid相同的记录。这种方法不仅效率高,而且简洁明了,能够快速返回查询结果。如果记录存在,我们即刻进行update()操作,将username更新为新的值。而如果记录不存在,则执行insert(),将新数据插入数据库。

在这个过程中,代码对异常和失败情况都做了详细的处理,例如,使用if ($updateResult) { ... } else { ... }和if ($insertResult) { ... } else { ... }来判断更新或插入操作是否成功,并通过返回JSON格式的响应代码、消息以及数据来告知调用方具体的操作结果。这种做法不仅提高了代码的健壮性,也便于后续维护和错误排查。

通过这一系列操作,我们不仅展示了如何在Webman框架中高效且安全地与数据库交互,还体现了良好的编程习惯和错误处理策略对于构建稳定系统的重要性。无论你的项目是小型的内部项目还是大型的商业应用,掌握这一流程将使你的数据管理更为流畅,同时也将提升用户对你的服务的满意度。

希望本示例能激发你对Webman框架和数据库操作更深入的探索,让你在编程道路上更加自信,开发出更多优秀的产品。在未来的开发旅程中,继续前行,遇见更出色的自己。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,实际操作
  • 二,注意事项
  • 三,结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档