wake-up-neo.net

So führen Sie gespeicherte Prozeduren von Laravel aus aus

Ich muss eine gespeicherte Prozedur ausführen, nachdem mein Formular Daten übermittelt hat. Ich habe die gespeicherte Prozedur so, wie ich es will, und mein Formular funktioniert einwandfrei. Ich weiß nur nicht die Aussage, um die sp von Laravel auszuführen 5.

es sollte ungefähr so ​​aussehen: my_stored_procedure ausführen. aber so etwas kann ich online nicht finden. 

25
Jordan Davis

Versuchen Sie so etwas

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

oder

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

Versuchen Sie dies für ohne Parameter 

DB::select('EXEC my_stored_procedure')
36

Sie können dies auch tun:

DB::select("CALL my_stored_procedure()");
8
Roque Mejos

für Laravel 5.4


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

wenn Sie Parameter übergeben wollen:

DB::select(DB::raw("exec my_stored_procedure :Param1, :Param2"),[
    ':Param1' => $param_1,
    ':Param2' => $param_2,
]);
7

für Laravel 5.5

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

oder

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

kein Parameter

DB::select('call myStoredProcedure()')
2
vanquan223

Arbeitscode mit Laravel 5.6,

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

Ausführen der gespeicherten Microsoft SQL Server-Prozedur (MS SQL Server) mit PHP Laravel-Framework . Wenn Sie versuchen, SP mit Laravel Model auszuführen, können Sie die folgenden zwei Methoden verwenden.

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

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

Wenn Sie den Varchar-Parameter übergeben, verwenden Sie Folgendes:

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

Wenn Sie nur Parameter übergeben, die INT oder BIGINT sind, sollte dies funktionieren und Sie können die Rückgabe von SP erhalten:

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

Sobald die gespeicherte Prozedur ausgeführt wird, sind die Werte in Form von Array im $submit vorhanden. Sie müssen durchlaufen und auf die erforderlichen Spalten zugreifen.

foreach($submit  as $row)
{

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

}
1
B AV B

Nach langer Recherche funktioniert dies:

DB::connection("sqlsrv")->statement('exec Pro_Internal_Transfer_Note_post @mvoucherid='.$VMID);
0
Faisal
app('db')->getPdo()->exec('exec my_stored_procedure');
0
zetta

Für Version 5.5 verwenden Sie CALL:

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