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]
                        ]
                    );
            }
        );
    }
相关推荐
若亦_18 分钟前
Java中关于this的三种用法
java·开发语言·intellij-idea
山甫aa20 分钟前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
软件技术NINI22 分钟前
基于SpringBoot和Vue的博物馆预约平台管理系统的设计与实现
java·毕业设计·毕设
独泪了无痕10 小时前
探索Pinyin4j-Java中的拼音转换利器
java·后端
道尔柯南11 小时前
C++ string 类详解:从常用接口到深拷贝,彻底掌握字符串处理
android·java·c++
唐诺12 小时前
5、Android JNI 动态注册中的“签名“详解
android·jni
kingx312 小时前
Bugku 3122 谷歌小恐龙题解:纯离线逆向 Vault 的 AES-GCM 加密资源(附 Python 解密器)
java·逆向·ctf·bugku·aes-gcm
DevOpenClub14 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
露天赏雪15 小时前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
zhaoshuzhaoshu15 小时前
Android 系统启动与调试中的日志抓取方式全解析
android