J'ai besoin d'exécuter une procédure stockée après que mon formulaire ait envoyé des données. La procédure stockée fonctionne comme je le souhaite et mon formulaire fonctionne correctement. Je ne connais tout simplement pas l'instruction permettant d'exécuter le sp de laravel 5.
cela devrait ressembler à ceci: exécutez my_stored_procedure. mais je n'arrive pas à trouver quelque chose comme ça en ligne.
Essayez quelque chose comme ça
DB::select('exec my_stored_procedure("Param1", "param2",..)');
ou
DB::select('exec my_stored_procedure(?,?,..)',array($Param1,$param2));
Essayez ceci sans paramètres
DB::select('EXEC my_stored_procedure')
Vous pouvez aussi faire ceci:
DB::select("CALL my_stored_procedure()");
pour Laravel 5.4
DB::select(DB::raw("exec my_stored_procedure"));
si vous voulez passer des paramètres:
DB::select(DB::raw("exec my_stored_procedure :Param1, :Param2"),[
':Param1' => $param_1,
':Param2' => $param_2,
]);
pour Laravel 5.5
DB::select('call myStoredProcedure("p1", "p2")');
ou
DB::select('call myStoredProcedure(?,?)',array($p1,$p2));
pas de paramètre
DB::select('call myStoredProcedure()')
Code de travail avec Laravel 5.6,
DB::select('EXEC my_stored_procedure ?,?,?',['var1','var2','var3']);
Exécution de la procédure stockée Microsoft SQL Server (MS SQL Server) avec PHP Laravel framework . Si vous essayez d'exécuter SP avec Laravel Model, vous pouvez utiliser les deux approches suivantes.
$submit = DB::select(" EXEC ReturnIdExample ?,?", array( $paramOne ,$paramTwo ) );
$submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");
Si vous passez le paramètre Varchar, utilisez ce qui suit:
$submit = DB::select(" EXEC ReturnIdExample '$paramOne', '$paramTwo' ");
Si vous ne faites que passer des paramètres qui sont INT ou BIGINT, cela devrait fonctionner et vous pouvez obtenir le retour de SP:
$submit = DB::select(" EXEC ReturnIdExample $paramOne,$paramTwo ");
Une fois que la procédure stockée est exécutée, les valeurs sont présentes dans le $submit
sous la forme d'un tableau, vous devez le parcourir en boucle et accéder aux colonnes requises.
foreach($submit as $row)
{
echo $row->COLUMN1;
echo $row->COLUMN2;
echo $row->COLUMN3;
}
app('db')->getPdo()->exec('exec my_stored_procedure');
Pour la version 5.5, utilisez CALL
:
return DB::select(DB::raw('call store_procedure_function(?)', [$parameter]))