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]
                        ]
                    );
            }
        );
    }
相关推荐
腻害兔13 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社14 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖15 小时前
JDK 26 新特性详解
java·开发语言
马优晨16 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
维天说18 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
执明wa19 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
404_coder19 小时前
源码视角下的 Android 开机流程:从 Zygote、SystemServer 到 Launcher
android
Zane199419 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
二流小码农19 小时前
鸿蒙开发:以登录案例了解代码架构MVVM
android·ios·harmonyos
噢,我明白了20 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel