Как выполнить хранимую процедуру из Laravel


Мне нужно выполнить хранимую процедуру после того, как моя форма отправит данные. У меня хранимая процедура работает так, как я хочу, и моя форма работает правильно. Я просто не знаю инструкции для выполнения sp из laravel 5.

Это должно быть что-то вроде этого: выполните my_stored_procedure. но я, кажется, не могу найти ничего подобного в Интернете.

Author: Pரதீப், 2015-12-28

8 answers

Попробуйте что-нибудь подобное

DB::select('exec my_stored_procedure("Param1", "param2",..)');

Или

DB::select('exec my_stored_procedure(?,?,..)',array($Param1,$param2));

Попробуйте это для без параметров

DB::select('EXEC my_stored_procedure')
 29
Author: Pரதீப், 2015-12-28 16:42:46

Вы также можете сделать это:

DB::select("CALL my_stored_procedure()");
 8
Author: Roque Mejos, 2017-11-25 09:21:44

Для Ларавеля 5.4


DB::select(DB::raw("exec my_stored_procedure"));

Если вы хотите передать параметры:

DB::select(DB::raw("exec my_stored_procedure :Param1, :Param2"),[
    ':Param1' => $param_1,
    ':Param2' => $param_2,
]);
 5
Author: Pasindu Jayanath, 2018-05-23 11:19:58

Для Laravel 5.5

DB::select('call myStoredProcedure("p1", "p2")');

Или

DB::select('call myStoredProcedure(?,?)',array($p1,$p2));

Нет параметра

DB::select('call myStoredProcedure()')
 2
Author: vanquan223, 2018-08-09 09:13:30

Запуск хранимой процедуры Microsoft SQL Server (MS SQL Server) с использованием платформы PHP Laravel. Если вы пытаетесь запустить SP с использованием модели Laravel, то вы можете использовать следующие два подхода.

$submit = DB::select(" EXEC ReturnIdExample ?,?", array( $paramOne ,$paramTwo ) ); 

$submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");

Если вы передаете параметр Varchar, используйте следующее:

$submit = DB::select(" EXEC ReturnIdExample '$paramOne', '$paramTwo' ");

Если вы просто передаете параметр, который имеет значение INT или BIGINT, то это должно сработать, и вы можете получить результат от SP:

$submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");

После выполнения хранимой процедуры значения будут присутствовать в $submit в виде массива, вам нужно пройти по нему и получить доступ к необходимым столбцам.

foreach($submit  as $row)
{

echo $row->COLUMN1;
echo $row->COLUMN2;
echo $row->COLUMN3;

}
 1
Author: B AV B, 2018-09-02 05:33:13

Для версии 5.5 используйте CALL:

return DB::select(DB::raw('call store_procedure_function(?)', [$parameter]))
 0
Author: iMezied, 2018-06-02 19:58:40
app('db')->getPdo()->exec('exec my_stored_procedure');
 0
Author: zetta, 2018-06-08 02:11:28

Рабочий код с Laraval 5.6,

DB::select('EXEC my_stored_procedure ?,?,?',['var1','var2','var3']);
 0
Author: DTIndia, 2018-08-09 09:13:53