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]
                        ]
                    );
            }
        );
    }
相关推荐
wh_xia_jun3 分钟前
在 Spring Boot 中使用 JSP
java·前端·spring boot
网安INF4 分钟前
CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)
java·web安全·网络安全·flink·漏洞
Y第五个季节9 分钟前
docker-部署Nginx以及Tomcat
java·开发语言
IT-ZXT88813 分钟前
Tomcat 线程模型详解&性能调优
java·tomcat
Shujie_L32 分钟前
【Android基础回顾】四:ServiceManager
android
Think Spatial 空间思维1 小时前
【实施指南】Android客户端HTTPS双向认证实施指南
android·网络协议·https·ssl
lanfufu1 小时前
记一次诡异的线上异常赋值排查:代码没错,结果不对
java·jvm·后端
枣伊吕波1 小时前
第十三节:第四部分:集合框架:HashMap、LinkedHashMap、TreeMap
java·哈希算法
weixin_472339461 小时前
使用Python提取PDF元数据的完整指南
java·python·pdf
PascalMing1 小时前
Ruoyi多主键表的增删改查
java·若依ruoyi·多主键修改删除