Laravel怎么执行sql sever的存储过程啊

发布于 2022-09-05 22:47:37 字数 482 浏览 12 评论 0

sql语句,能执行成功

clipboard.png
但是用DB 调用则报错,说查询的结果不包含字段

clipboard.png

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

在梵高的星空下 2022-09-12 22:47:37

执行存储过程的语句:
$finance= DB::connection('sqlsrv')->select("exec xgx_finance_ledger ?,?,?",['J44022','2017-02-01','2017-09-19']);
但是做执行存储过程通常会遇到两个坑
坑1.写参数的数组,一定一定要用索引数组,不然会报错,不能是关联数组
坑2:在sql存储过程方法中,在储存过程开头 加上set nocount on 表示不返回计数行就是影响行数不反回。通常报的错误为如上。问题出在 PDO上爆出来的 所以查了SQLSRV_Help.chm文档 就是微软提供的dll的api 最后发现是因为 储存过程执行还会返回影响行数所以导致的问题 没有返回我需要的值 。

clipboard.png
set nocount on放的位置可以根据情况适当调整

清浅ˋ旧时光 2022-09-12 22:47:37

楼上补充一个:存储过程必须要有返回字段名,若返回计算结果则PDO会拿不到数据!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文