如何从Laravel执行存储过程

Jor*_*vis 28 php sql-server stored-procedures laravel laravel-5

我需要在表单提交数据后执行存储过程.我的存储过程就像我想要的那样工作,并且我的表单正常工作.我只是不知道从laravel 5执行sp的语句.

它应该是这样的:执行my_stored_procedure.但我似乎无法在网上找到类似的东西.

Pரத*_*ீப் 38

尝试这样的事情

DB::select('exec my_stored_procedure("Param1", "param2",..)');
Run Code Online (Sandbox Code Playgroud)

要么

DB::select('exec my_stored_procedure(?,?,..)',array($Param1,$param2));
Run Code Online (Sandbox Code Playgroud)

试试这个没有参数

DB::select('EXEC my_stored_procedure')
Run Code Online (Sandbox Code Playgroud)

  • @JordanDavis如果你不需要从存储过程返回任何东西,你也可以使用DB :: statement而不是DB :: select (4认同)

小智 12

你也可以这样做:

DB::select("CALL my_stored_procedure()");
Run Code Online (Sandbox Code Playgroud)


Pas*_*ath 7

对于Laravel 5.4


DB::select(DB::raw("exec my_stored_procedure"));
Run Code Online (Sandbox Code Playgroud)

如果你想传递参数:

DB::select(DB::raw("exec my_stored_procedure :Param1, :Param2"),[
    ':Param1' => $param_1,
    ':Param2' => $param_2,
]);
Run Code Online (Sandbox Code Playgroud)


van*_*223 7

适用于 Laravel 5.5

DB::select('call myStoredProcedure("p1", "p2")');
Run Code Online (Sandbox Code Playgroud)

或者

DB::select('call myStoredProcedure(?,?)',array($p1,$p2));
Run Code Online (Sandbox Code Playgroud)

无参数

DB::select('call myStoredProcedure()')
Run Code Online (Sandbox Code Playgroud)