laravel 增删改

文章目录

检测环境

laravel 的环境配置

安装两个插件

编写SQL插入语句

php 复制代码
<?php
namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;

// 命名空间
class Demo extends Controller{
    public function add(){
        // 插入一行数据
        DB::table('user')
        ->insert(['name'=>'yyy','age'=>11]);

        // 批量插入数据
        DB::table('user')
        ->insert([
            ['name'=>'烟雨3','age'=>22],
            ['name'=>'烟雨2','age'=>20]
        ]
        );
        

    }
}

建库建表----建工程 --- 改 .env 环境 ---- 路由 -- 控制器

php 复制代码
   public function update(){
        DB::table('user')
        ->update(['age'=>10]);
        // 没有  where  限定  ,就会把所有的  age  改成  10
    }
php 复制代码
Route::get('d2',[Demo::class,'update']);

没有where限定,导致所有人的age 都被更新为 10

where 限定

php 复制代码
    public function update(){
        // DB::table('user')
        // ->update(['age'=>10]);
        // 没有  where  限定  ,就会把所有的  age  改成  10
        //   where  限定  name = yyy   把名字 改为 mmm
        DB::table('user')
        ->where('name','=','yyy')
        ->update(['name'=> 'mmm']);
    }
php 复制代码
Route::get('d2',[Demo::class,'update']);

更新 或者 插入

第一个参数存在,则作为 where 限定,去更新更新第二个参数,执行的是更新

第一个参数不存在,则把第一个第二个参数 插入到 表中,执行的是 插入操作

php 复制代码
public function update(){
        // DB::table('user')
        // ->update(['age'=>10]);
        // 没有  where  限定  ,就会把所有的  age  改成  10
        //   where  限定  name = yyy   把名字 改为 mmm
        // DB::table('user')
        // ->where('name','=','yyy')
        // ->update(['name'=> 'mmm']);
        DB::table('user')
        ->updateOrInsert(
            // 参数1   ['name'=>'mmm']
            // 参数2   ['age'=>2]
            
                ['name'=>'mmm'],
                ['age'=>2]
            

        );
    }

php 复制代码
   public function delete(){
        DB::table('user')
        ->where('age','>',10)
        ->delete();
    }
php 复制代码
Route::get('d3',[Demo::class,'delete']);

delete 删除前,id 最大 = 7,重新插入数据,id 从 8 开始

php 复制代码
 public function delete(){
        // DB::table('user')
        // ->where('age','>',10)
        // ->delete();
        DB::table('user')->truncate();
        //  针对整个表操作,无法像  delete 一样,限定范围 删除
        // 删除数据,保留表的结构,重置  id ,重新插入数据。id  从 1  开始递增
    }

事务控制

php 复制代码
 public function add()
    {
        DB::transaction(
            // transaction(  放置一个匿名函数(把多个数据库操作放在改匿名函数的函数体之内) )
            function () {
                // 插入一行数据
                DB::table('user')
                    ->insert(['name' => 'yyy', 'age' => 11]);

                // 批量插入数据
                DB::table('user')
                    ->insert(
                        [
                            ['name' => '烟雨3', 'age' => 22],
                            ['name' => '烟雨2', 'age' => 20]
                        ]
                    );
            }
        );
    }
相关推荐
方也_arkling5 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮5 小时前
Spring Bean作用域与生命周期全解析
java·spring
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1126 小时前
web-第一次课后作业
java·开发语言·idea
秋96 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本6 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
DIY源码阁6 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse
Meteors.6 小时前
安卓源码阅读——01.grade设置binding为true时,xml如何进行映射
android·xml
_李小白7 小时前
【android opencv学习笔记】Day 26: 滤波算法之低通滤波与图像缩放插值
android·opencv·学习
basketball6167 小时前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++