• laravel基础课程---10、数据库基本操作(如何使用数据库)


    laravel基础课程---10、数据库基本操作(如何使用数据库)

    一、总结

    一句话总结:

    1、链接数据库:.env环境配置里面
    2、执行数据库操作:DB::table('users')->update(['votes' => 1]);
    1、链接数据库(D:laravelyzmeduyzm2.env)
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=yzm
    DB_USERNAME=root
    DB_PASSWORD=123

    1、laravel数据库操作中的原生SQL语句?

    根目录DB::下的(select、delete、insert、update方法)
    运行声明:比如创建一个数据库:DB::statement("create database yzmedu");
    1、查询数据
    
        $data=DB::select('select * from  user');
    
    2、删除数据
         如果删除成功 返回影响行数、
         var_dump(DB::delete('delete from user where id>5'));
    
    3、增加数据
        返回值bool 如果成功 true 失败 false
        var_dump(DB::insert("insert into user values(null,'123','123',0,'23131321')"));
    4、修改数据
         返回值 影响行数 
        var_dump(DB::update('update user set name="帅哥" where id>3'));
    
    5、运行一段命令
    
        DB::statement("create database yzmedu");
        DB::statement("drop database yzmedu");
    
    6、事物机制
    
        DB::beginTransaction();
    
         删除id=1数据
    
        $a=DB::delete("delete from user where id=1");
         删除id=10数据
        $b=DB::delete("delete from user where id=11");
    
        if ($a && $b) {
            # code...
             提交事务
            DB::commit();
        }else{
             回滚事务
            DB::rollback();
        }

    2、laravel中的事务机制如何实现?

    自动事务:DB::transaction(function () {
    手动事务:和tp一样:DB::beginTransaction(); DB::commit(); DB::rollback();

    自动事务

    DB::transaction(function () {
        DB::table('users')->update(['votes' => 1]);
    
        DB::table('posts')->delete();
    });

    手动事务

    6、事物机制
    
        DB::beginTransaction();
    
         删除id=1数据
    
        $a=DB::delete("delete from user where id=1");
         删除id=10数据
        $b=DB::delete("delete from user where id=11");
    
        if ($a && $b) {
            # code...
             提交事务
            DB::commit();
        }else{
             回滚事务
            DB::rollback();
        }

    3、laravel实现侧边栏你选哪一个那个就展开的效果?

    可以获取url中的路由,然后根据路由用js判断哪一个展开:主要利用SERVER数组

    4、如何实现登录成功返回原页面?

    记录原页面的地址【SERVER数组里有】,登录之后,跳转到这样地址

    5、laravel中文件上传的实质是什么?

    move函数:将文件从临时目录移动到了我们需要放它的目录

    6、laravel中ajax删除图片实例?

    ajax请求是jquery完成的:注意表单请求要加上_token变量
    控制器中不必判断是不是ajax请求:正常request对象获取参数即可
    1、JQ
    // obj,id 接收参数
    function del(obj,id){
    
        // 发送ajax请求
    
        // $.post(请求地址,传递参数,响应请求);
        // data可以随便命名 主要接收ajax返回的数据
    
        $.post('/admin/pic/'+id,{'id':id,'_method':'delete','_token':'{{ csrf_token() }}'},function(data){
    
            // 判断接收的数据如果1成功 0失败
    
            if (data) {
    
                // 移除对应删除的数据
    
                $(obj).parent().parent().remove();
    
                // 获取总数条数
                tot=Number($("#tot").html());
    
                // 修改总数据条数
                $("#tot").html(--tot);
    
            }else{
                alert('删除失败');
            }
    
        });
    }
    
    2、控制器
    public function destroy(Request $request){
        // 获取删除ID
    
        $id=$request->input('id');
    
        // 查巡图片 
        $data=DB::select("select * from pic where id=$id");
    
        // 删除操作
        // 删除成功 返回值1
        // 删除失败 返回值0
    
    
        if (DB::delete("delete from pic where id=$id")) {
            # code...
    
            // 删除成功 删除图片
            unlink("./Uploads/Goods/{$data[0]->img}");
            return "1";
        }else{
            return "0";
        }
    
    }

    7、laravel中表单中{{ csrf_token() }}保护意义何在(所有的表单请求都要带上,无论是否是ajax)?

    不受到 跨站请求伪造 (CSRF) 攻击

    Laravel 提供简单的方法保护你的应用不受到 跨站请求伪造 (CSRF) 攻击。跨站请求伪造是一种恶意的攻击,它利用已通过身份验证的用户身份来运行未经授权的命令。

    二、内容在总结中

     
  • 相关阅读:
    【Lua】LuaForWindows_v5.1.4-46安装失败解决方案
    【C++】指针引发的bug
    【C++】指针引发的bug
    【C++】位操作(3)-获取某位的值
    bzoj1444
    bzoj1758
    bzoj3091
    poj1741 bzoj2152
    bzoj2125 3047
    bzoj3669
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10850995.html
Copyright © 2020-2023  润新知