我有一个现有的MSSQL存储过程,我需要在我的laravel应用程序中调用它。我知道我可以使用laravel eloquent中的高级wheres,但客户希望我调用该存储过程。
我需要按如下方式调用SP
exec sp_getDepends @Action= 'smn',@DependencyID = 12345
我知道我可以使用DB:statement
,但我不知道如何传递命名的参数。
你能帮我解决这个问题吗?
谢谢
发布于 2016-10-13 10:26:27
DB::select(DB::raw("exec dbo.sp_getDepends :Action, :DependencyID"),
[':Action' => $Action, ':DependencyID' => $DependencyID]);
dbo。可能需要删除,不是100%确定这是否是你正在寻找的,但我希望它会让你在正确的轨道上。
发布于 2020-04-29 06:10:29
我必须找到一个解决方案,所以就是这样。
DB::select('exec sp_getDepends @Action = ?, @DependencyID = ?', ['smn', '12345'])
如果您只想传递一个参数,在本例中可能是DependencyID,您可以使用:
DB::select('exec sp_getDepends @DependencyID = ?', ['12345'])
你得到了大致的概念。
问题是如何在laravel中调用MSSQL存储过程的命名参数。这就是我的回答。如果您想在laravel中使用命名参数,我认为它可能类似于:
DB::select('exec sp_getDepends @Action = :ActionParam, @DependencyID = :DependencyIDParam'), ['ActionParam' => 'smn', 'DependencyIDParam' => '12345']);
https://stackoverflow.com/questions/40010212
复制相似问题