首页 > php框架 > Laravel > 正文

laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法

裘德小鎮的故事
发布: 2025-12-19 13:52:02
原创
580人浏览过
使用 DB Facade 可在 Laravel 中执行原生 SQL,支持 select、insert、update、delete、statement 和 unprepared 方法,适用于复杂查询或结构变更,需注意参数绑定与安全风险。

laravel怎么用db facade执行原生sql查询_laravel db facade原生sql执行方法

如果您需要在 Laravel 中执行复杂的数据库查询,而查询无法通过查询构造器或 Eloquent 实现,则可以使用 DB Facade 来直接运行原生 SQL 语句。以下是几种使用 DB Facade 执行原生 SQL 查询的方法:

本文运行环境:MacBook Pro,macOS Sonoma

一、使用 DB::select 执行查询语句

DB::select 方法用于执行 SELECT 类型的原生 SQL 查询,返回结果集。该方法适用于需要获取数据但不修改数据库的场景。

1、在控制器或路由闭包中引入 DB Facade,确保已通过 use 语句导入 Illuminate\Support\Facades\DB。

2、调用 DB::select('SELECT * FROM users WHERE active = ?', [1]),其中 ? 为参数占位符,第二个参数为绑定的值数组。

3、若使用命名绑定,可写成 DB::select('SELECT * FROM users WHERE id = :id', ['id' => 1]),提高可读性。

二、使用 DB::insert 执行插入操作

DB::insert 方法用于执行不返回结果集的数据操作语句,如 INSERT。执行后返回布尔值表示是否成功。

1、编写包含字段和值的 INSERT 语句,例如 DB::insert('INSERT INTO users (name, email, password) VALUES (?, ?, ?)', ['Alice', 'alice@example.com', 'password'])

2、确保传入的参数数量与占位符匹配,避免 SQL 错误。

三、使用 DB::update 执行更新操作

DB::update 方法用于执行 UPDATE 语句,返回受影响的行数,适合用于修改已有记录。

1、构造更新语句,如 DB::update('UPDATE users SET name = ? WHERE id = ?', ['Bob', 5])

寻光
寻光

阿里达摩院寻光视频创作平台,以视觉AIGC为核心功能,用PPT制作的方式创作视频

寻光 240
查看详情 寻光

2、检查返回值是否大于 0,以判断是否有记录被实际更新。

四、使用 DB::delete 执行删除操作

DB::delete 方法用于执行 DELETE 语句,同样返回受影响的行数,用于从数据库中移除记录。

1、编写删除语句,例如 DB::delete('DELETE FROM users WHERE status = ?', ['inactive'])

2、注意添加 WHERE 条件,防止误删全部数据。

五、使用 DB::statement 执行无返回语句

DB::statement 方法用于执行不需要返回结果的 SQL 语句,如 CREATE、DROP、ALTER 等 DDL 操作。

1、执行数据库结构变更命令,如 DB::statement('CREATE TABLE IF NOT EXISTS profiles (id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, bio TEXT)')

2、确保在安全环境下执行此类操作,避免生产环境误操作。

六、使用 DB::unprepared 执行多语句或非预处理语句

DB::unprepared 方法用于执行不能被预处理的 SQL 语句,或一次性执行多个语句,常用于迁移或初始化脚本。

1、调用 DB::unprepared('SET FOREIGN_KEY_CHECKS=0; TRUNCATE TABLE users; SET FOREIGN_KEY_CHECKS=1;') 来执行多个命令。

2、注意此方法绕过预处理机制,存在 SQL 注入风险,仅应在受信任的上下文中使用。

以上就是laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号