繁体   English   中英

Laravel和存储过程SQL

[英]Laravel and stored procedures SQL

我有一个客户端制作的存储过程。 现在,我必须访问它并在laravel应用中处理数据。

我没有连接到SQL的问题,但是问题在传入参数时开始。

这是我的代码:

$connections = DB::connection('sqlsrv')
    ->select(EXEC [stored].[procedure].[here] $param1, $param2);

我得到的错误是:查询的活动结果不包含任何字段

我在论坛上搜索了许多小时,以下是我发现的内容:

$connections = DB::connection('sqlsrv')
->select(DB::raw('EXEC [stored].[procedure].[here] $param1, $param2'));

我得到的错误是:查询的活动结果不包含任何字段。

我已经安装了SQL驱动程序和OBDC驱动程序。

任何帮助将非常感激

不知道这是否有帮助,但是这个答案建议您将DB :: raw放在参数周围,而不是EXEC stored.proc.name

所以代替

 $connections = DB::connection('sqlsrv')->select(DB::raw('EXEC [stored].[procedure].[here] $param1, $param2'));

尝试

 $connections = DB::connection('sqlsrv')->select('EXEC stored.proc.name' . DB::raw($param1, $param2));

好。 所以我找出了问题所在。

事实证明,客户端通过xml发送了一个变量给我。 据我从Microsoft文档中了解到的那样,您不能t pass xml as a varable because if you call the SP from an application it is gonna pass it as an array and application can直接将xml解析为数组。 您必须自己做。

相反,可以做的是将xml作为数组的值传递,然后从那里获取它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM