laravel中的toSql如何获取带参数的sql语句

发布时间 - 2020-02-02 00:00:00    点击率:

默认情况下,tosql 获取到的 sql 里面的参数使用 "?" 代替的,如下:

DB::table('user')->where('id', 1)->toSql();

 获取到的 sql 语句是:

select * from `tb_user` where `id` = ?

有时候我们想要得到具体的语句,可以利用 builder 的 getBindings 方法:

$builder = DB::table('user')->where('id', 1);
$bindings = $builder->getBindings();
$sql = str_replace('?', '%s', $builder->toSql());
$sql = sprintf($sql, ...$bindings);
dd($sql);

 获取到的 sql 语句是:

select * from `tb_user` where `id` = 1

如果经常使用可以考虑使用 Builder 的 macro 方法加进 Builder 里面:

\Illuminate\Database\Query\Builder::macro('sql', function () {
    $bindings = $this->getBindings();
    $sql = str_replace('?', '%s', $this->toSql());
 
    return sprintf($sql, ...$bindings);
});
dd(DB::table('user')->where('id', 1)->sql());

更多laravel框架相关技术文章,请访问laravel教程栏目!


# laravel  # 可以利用  # 情况下  # id  # toSql  # table  # user  # DB  # getBindings  # bindings  # builder 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 深圳网站制作平台,深圳市做网站好的公司有哪些?  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何确认建站备案号应放置的具体位置?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  详解vue.js组件化开发实践  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  iOS正则表达式验证手机号、邮箱、身份证号等  网站制作企业,网站的banner和导航栏是指什么?  Python数据仓库与ETL构建实战_Airflow调度流程详解  微信小程序 scroll-view组件实现列表页实例代码  详解jQuery中基本的动画方法  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何在阿里云高效完成企业建站全流程?  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何在局域网内绑定自建网站域名?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  如何在云虚拟主机上快速搭建个人网站?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  千库网官网入口推荐 千库网设计创意平台入口  移动端脚本框架Hammer.js  Linux系统命令中tree命令详解  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel如何使用Livewire构建动态组件?(入门代码)  如何利用DOS批处理实现定时关机操作详解  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何在服务器上三步完成建站并提升流量?  如何快速生成可下载的建站源码工具?  如何确保西部建站助手FTP传输的安全性?  香港服务器部署网站为何提示未备案?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?