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.
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')
Sie können dies auch tun:
DB::select("CALL my_stored_procedure()");
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,
]);
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()')
Arbeitscode mit Laravel 5.6,
DB::select('EXEC my_stored_procedure ?,?,?',['var1','var2','var3']);
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;
}
Nach langer Recherche funktioniert dies:
DB::connection("sqlsrv")->statement('exec Pro_Internal_Transfer_Note_post @mvoucherid='.$VMID);
app('db')->getPdo()->exec('exec my_stored_procedure');
Für Version 5.5 verwenden Sie CALL
:
return DB::select(DB::raw('call store_procedure_function(?)', [$parameter]))