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

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

28.12.2015 07:27:36 Просмотров 37 Источник

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

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

У вопроса есть решение - Посмотреть?

Ответы - Как выполнить хранимую процедуру из Laravel / How to execute Stored Procedure from Laravel

Является ответом!
Pரதீப்

28.12.2015 07:31:19

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

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

или

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

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

DB::select('EXEC my_stored_procedure')
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment56736005_34497114
Мне не нужно ничего возвращать, и моя хранимая процедура не нуждается ни в каких параметрах. итак, могу ли я сделать DB:: select ('my_stored_procedure')?
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment56736112_34497114
@JordanDavis-проверить сейчас
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment56737082_34497114
Спасибо, теперь он пытается запустить SP, однако похоже, что мой сервер не имеет необходимых разрешений для этого
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment56737116_34497114
Это Ваш login, который не имеет разрешения на executeкакой-либо вещи на Server. Свяжитесь с вашим администратором
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment60073464_34497114
@JordanDavis Если вам не нужно ничего возвращать из хранимой процедуры, вы также можете использовать инструкцию DB::вместо DB:: select
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment86803017_34497114
моя ошибка SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXEC rule_4' at line 1 (SQL: EXEC rule_4)
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/34497114#comment90657017_34497114
@Pரதீப் может быть, вы можете мне помочь. Посмотрите на это : stackoverflow.com/questions/51838922/…
Roque Mejos

01.09.2016 06:23:39

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

DB::select("CALL my_stored_procedure()");
iMezied

11.02.2018 02:35:40

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

return DB::select(DB::raw('call store_procedure_function(?)', [$parameter]))
Pasindu Jayanath

23.05.2018 02:19:58

за что Laravel 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,
]);
zetta

08.06.2018 05:11:28

app('db')->getPdo()->exec('exec my_stored_procedure');
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/50752403#comment88513107_50752403
Это что Laravel ответа?
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/50752403#comment88514719_50752403
Хотя это может ответить на вопрос, лучше добавить некоторое описание того, как этот ответ может помочь решить проблему. Пожалуйста, прочитайте, Как я пишу хороший ответ , чтобы узнать больше.
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/50752403#comment92940843_50752403
@MunimMunna, конечно, это, app () является помощником Laravel.
DTIndia

06.08.2018 08:04:12

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

DB::select('EXEC my_stored_procedure ?,?,?',['var1','var2','var3']);
vanquan223

09.08.2018 12:12:54

для Laravel 5.5

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

или

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

никакой параметр

DB::select('call myStoredProcedure()')
BATMAN

01.09.2018 09:14:35

Запуск хранимой процедуры Microsoft SQL Server (MS SQL Server) с использованием PHP Laravel framework. Если вы пытаетесь запустить 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;

}
Faisal

22.04.2019 09:57:30

После долгих исследований это работает:

DB::connection("sqlsrv")->statement('exec Pro_Internal_Transfer_Note_post @mvoucherid='.$VMID);
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/55790377#comment105640280_55790377
Этот тоже работал на меня.
Avnish alok

25.01.2020 05:25:30

При использовании MySql с Laravel. Ниже приведен путь, чтобы пойти.

DB:: select( 'call sp($id)' );

https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/59910127#comment105946404_59910127
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа
https://stackoverflow.com/questions/34497063/how-to-execute-stored-procedure-from-laravel/59910127#comment105980091_59910127
@byaruhaf Спасибо за ваше предложение. Я добавил сценарий, чтобы использовать его.
Закрыть X