Laravel怎么执行sql sever的存储过程啊
sql语句,能执行成功
但是用DB 调用则报错,说查询的结果不包含字段
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
sql语句,能执行成功
但是用DB 调用则报错,说查询的结果不包含字段
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
执行存储过程的语句:
$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 最后发现是因为 储存过程执行还会返回影响行数所以导致的问题 没有返回我需要的值 。
set nocount on放的位置可以根据情况适当调整
楼上补充一个:存储过程必须要有返回字段名,若返回计算结果则PDO会拿不到数据!!