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]
                        ]
                    );
            }
        );
    }
相关推荐
古城小栈2 小时前
Spring AI 1.1:快速接入主流 LLM,实现智能问答与文本生成
java·人工智能·spring boot·spring
TheNextByte12 小时前
如何将Android短信导出到CSV/TEXT/Excel
android·excel
计算机学姐2 小时前
基于SSM的宠物领养管理系统【2026最新】
java·vue.js·后端·java-ee·tomcat·mybatis·宠物
后端小张2 小时前
【JAVA进阶】鸿蒙开发与SpringBoot深度融合:从接口设计到服务部署全解析
java·spring boot·spring·spring cloud·华为·harmonyos·鸿蒙
Qiuner2 小时前
Spring Boot AOP(一) 入门与核心概念
java·spring boot·后端·spring·aop
carry杰2 小时前
Springboot3 + shardingsphere-jdbc5.5.2 按年月分表(动态创建表)
java·spring cloud
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ2 小时前
throw new Exception 如何指定返回code
java·开发语言
C雨后彩虹2 小时前
虚拟理财游戏
java·数据结构·算法·华为·面试
武子康2 小时前
Java-197 消息队列应用场景:缓存预热+限流排队+Redis Lua 扣库存+MQ 削峰填谷
java·redis·缓存·性能优化·消息队列·rabbitmq·java-rabbitmq
全靠bug跑2 小时前
Spring Cloud Gateway 实战:统一鉴权与用户信息全链路透传
java·开发语言·gateway·拦截器