laravel使用第二数据库DB和模型方法增删改查
xuexi 2026-02-06 11:13:53 发表在:PHP 查看数:8
<?php
namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class SecondDbController extends Controller
{
    // 1. 新增数据:向第二个数据库的users表插入一条数据
    public function add()
    {
        $id = DB::connection('mysql2')->table('users')->insertGetId([
            'name' => '测试第二个数据库',
            'email' => 'test@mysql2.com'
        ]);
        return '新增成功,主键ID:' . $id;
    }

    // 2. 查询数据:查询第二个数据库的users表所有/单条数据
    public function select()
    {
        // 查询所有
        $all = DB::connection('mysql2')->table('users')->get();
        // 查询单条(根据ID)
        $one = DB::connection('mysql2')->table('users')->where('id', 1)->first();
        // 查询指定字段
        $field = DB::connection('mysql2')->table('users')->pluck('name', 'id');
        return compact('all', 'one', 'field');
    }

    // 3. 修改数据:修改第二个数据库users表中ID=1的数据
    public function update()
    {
        $row = DB::connection('mysql2')->table('users')
            ->where('id', 1)
            ->update(['name' => '修改后的名称']);
        return '修改成功,影响行数:' . $row;
    }

    // 4. 删除数据:删除第二个数据库users表中ID=1的数据
    public function delete()
    {
        $row = DB::connection('mysql2')->table('users')->where('id', 1)->delete();
        // 清空表(谨慎使用,不会自增重置)
        // DB::connection('mysql2')->table('users')->truncate();
        return '删除成功,影响行数:' . $row;
    }
}

模型增删改查

<?php
namespace App\Http\Controllers;

use App\Models\SecondUser;
use Illuminate\Http\Request;

class SecondDbController extends Controller
{
    // 模型方式:新增
    public function modelAdd()
    {
        // 方式1:批量赋值
        $user = SecondUser::create([
            'name' => '模型新增-第二个数据库',
            'email' => 'model@mysql2.com'
        ]);
        // 方式2:实例化赋值
        // $user = new SecondUser();
        // $user->name = '模型新增-第二个数据库';
        // $user->email = 'model@mysql2.com';
        // $user->save();
        return '模型新增成功,ID:' . $user->id;
    }

    // 模型方式:查询
    public function modelSelect()
    {
        // 查询所有
        $all = SecondUser::all();
        // 查询单条
        $one = SecondUser::find(1); // 根据ID
        $where = SecondUser::where('name', 'like', '%模型%')->first(); // 条件查询
        // 分页查询
        $page = SecondUser::paginate(10);
        return compact('all', 'one', 'where', 'page');
    }

    // 模型方式:修改
    public function modelUpdate()
    {
        // 方式1:查询后修改
        $user = SecondUser::find(1);
        $user->name = '模型修改-第二个数据库';
        $user->save();

        // 方式2:批量修改
        // SecondUser::where('id', 1)->update(['name' => '模型修改-第二个数据库']);
        return '模型修改成功';
    }

    // 模型方式:删除
    public function modelDelete()
    {
        // 方式1:查询后删除
        $user = SecondUser::find(1);
        $user->delete();

        // 方式2:批量删除
        // SecondUser::where('id', '>=', 1)->delete();
        // 软删除(若开启):SecondUser::destroy(1);
        return '模型删除成功';
    }
}
最近访问时间:2026-02-07 03:45:17
知识库:422条鸣谢:TAY  备案号:蜀ICP备2024090044号-1