【问题标题】:Laravel and stored procedures SQLLaravel 和存储过程 SQL
【发布时间】:2018-09-10 12:16:15
【问题描述】:

我有一个客户制作的存储过程。 现在我必须在我的 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 驱动。

任何帮助将不胜感激

【问题讨论】:

标签: php sql laravel stored-procedures


【解决方案1】:

不知道这是否会有所帮助,但 this answer suggests 你把你的 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));

【讨论】:

  • 感谢您的帮助,但如果我按照您的建议进行操作,则会收到相同的消息:查询的活动结果不包含任何字段
【解决方案2】:

好的。所以我发现了这个问题。

事实证明,客户端通过 xml 变量发送给我。 据我从微软文档中了解到,您可以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 cant 直接将 xml 解析为数组。你必须自己做。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2012-08-14
    • 2018-12-08
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2018-05-08
    相关资源
    最近更新 更多