You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在独立PHP脚本中使用Laravel的数据库连接

解决Laravel 5.3独立脚本复用数据库连接的问题

嘿,这个需求我之前帮朋友处理过,其实不用自己去读取解析.env文件或者重新配置数据库连接——直接让你的独立脚本接入Laravel的核心生态就好了,这样能100%复用框架已经配置好的数据库连接。下面给你详细步骤:

步骤1:创建独立脚本并加载Laravel核心

在项目的public目录下创建script.php,首先需要引入Laravel的自动加载器和启动文件,代码如下:

<?php

// 引入Composer自动加载器,加载所有依赖
require __DIR__.'/../vendor/autoload.php';

// 初始化Laravel应用实例
$app = require_once __DIR__.'/../bootstrap/app.php';

// 启动应用内核,完成服务提供者的注册(包括数据库服务)
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$kernel->handle(Illuminate\Http\Request::capture());

这里的__DIR__.'/../'是因为public目录在项目根目录下,所以往上跳一级就能找到vendor和bootstrap文件夹。

步骤2:直接使用Laravel的DB门面执行查询

加载完Laravel核心后,你就可以像在Laravel控制器里一样使用DB门面来操作数据库了,比如:

// 示例1:查询users表的所有数据
$users = \DB::table('users')->get();
foreach ($users as $user) {
    echo $user->name . "<br>";
}

// 示例2:执行原生SQL查询
$results = \DB::select('select * from orders where user_id = ?', [1]);
var_dump($results);

可选简化方案(仅需数据库连接时)

如果你的脚本不需要处理HTTP请求,只是单纯执行数据库操作,可以简化内核启动的步骤,只注册数据库服务提供者:

<?php

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

// 仅注册数据库服务提供者并启动应用
$app->register(Illuminate\Database\DatabaseServiceProvider::class);
$app->boot();

// 接下来正常使用DB门面
$user = \DB::table('users')->where('email', 'test@example.com')->first();
var_dump($user);

注意事项

  • 确保script.php的文件权限正确,服务器能正常读取执行;
  • 不要手动去读取.env文件解析数据库配置——Laravel已经帮你做好了这一步,直接复用框架的连接更安全(比如密码加密、连接池管理等);
  • 执行完脚本后,Laravel会自动处理数据库连接的关闭,无需手动操作。

内容的提问来源于stack exchange,提问作者Yeak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:23:03