Como usar un procedimiento almacenado en Laravel.

Hola developers, hoy en esta sección vamos a aprender a ejecutar un procedimiento almacenado con paso de parámetros utilizando Laravel.

Autor: rogercode. Full stack developer

Los procedimientos almacenados en MySQL se pueden entender como un conjunto de instrucciones escritas de forma secuencial en el lenguaje SQL que se ejecutan cada vez que se manda a llamar el procedimiento almacenado.

Para implementar un procedimiento almacenado en Laravel, puede usar los siguientes pasos.

  • 1 Estar seguro que el procedimiento almacenado funciona correctamente en la base de datos.
  • 2 En el proyecto Laravel, ir al controlador para usar el procedimiento almacenado.
  • 3 Utilizar el método DB::select para llamar el procedimiento almacenado.

Al crear un procedimiento almacenado se puede definir si este recibe parámetros o no.

Ejecutar un procedimiento almacenado sin parámetros en Laravel☟.

Utilizamos el método select y le pasamos como parámetro el nombre del procedimiento almacenado

Ejemplo

            
		
    <?php
 
    namespace App\Http\Controllers;
    
    use Illuminate\Support\Facades\DB; //Importamos la clase DB
    
    class ExampleController extends Controller
    {
        public function show()
        {
          //Se ejecuta el procedimiento almacenado
          $datos = DB::select("call nombre_de_mi_procedimiento_almacenado"); 

          return $datos; //Retornamos el resultado.
        }
    }
    
            
          

Ejecutar un procedimiento almacenado con paso de parámetros en Laravel☟.

Los parámetros que se necesitan pasar pueden ser estáticos o dinámicos dependiendo de la necesidad del usuario.

Tener en cuenta que si se pasan parámetros de tipo string (cadenas de texto) se debe de escribir el parámetro entre comillas simples.

$nombre = "Mi nombre";

$datos = DB::select("call nombre_de_mi_procedimiento_almacenado('$nombre')");

Ejemplo

            
		
    <?php
 
    namespace App\Http\Controllers;
    
    use Illuminate\Support\Facades\DB; //Importamos la clase DB
    
    class ExampleController extends Controller
    {
        public function show(Request $request)
        {
          //Los parametros a pasar
          $parametroUno = $request->dato1;
          $parametroDos = $request->dato2;
          $parametroTres = $request->dato3;

          //Se ejecuta el procedimiento almacenado
          //Primera opción
          $datos = DB::select("call nombre_de_mi_procedimiento_almacenado($parametroUno, $parametroDos, $parametroTres)");
          //Segunda opción
          $datos = DB::select("CALL nombre_de_mi_procedimiento_almacenado(?, ?, ?)", array($request->dato1, $request->dato2, $request->dato3));
          return $datos; //Retornamos el resultado.
        }
    }