Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Laravel / Aprende a usar transacciones con Laravel

Aprende a usar transacciones con Laravel

Autor jc mouse martes, marzo 5, 2024

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos almacenados, sin embargo, Laravel dentro de su facade DB contempla su uso, que en combinación con eloquent nos facilita bastante el trabajo como veremos en los siguientes ejemplos.

Veamos un ejemplo:

Se quiere insertar dos registros en una tabla «Users«, los campos son «username: varchar(10)» y «password:varchar(190)».

Si se realizara esto de la forma tradicional con dos insert y se produjera algun error en el segundo insert, el primero insert habria concluido con exito y por lo tanto habria que borrarlo manualmente. para que esto no suceda se utiliza transacciones.

Transacciones usando Transaction

DB::transaction() se utiliza para insertar múltiples consultas y trabaja junto a un bloque Try-catch que nos ayudara a capturar las excepciones si la transacción falla.

Como se puede observar en el codigo de arriba,  el método DB::transaction() maneja el commit y el rollback de forma automática por lo que ya no debemos escribirlas, asi que solo debe,os escribir los queries dentro transaction y manejar las excepciones con un bloque try/catch.

Como indicamos mas arriba, el campo username solo acepta 10 caracteres por lo que la transacción fallara, deshacera el primer insert y nos mostrara en pantalla un mensaje de error:

QLSTATE[22001]: String data, right truncated: 1406 Data too long for column ‘username’

Transacciones de forma manual

Si se quiere implementar una transacción manualmente y asi tener control total sobre las reversiones y confirmaciones, puede utilizar el método DB::beginTransaction(); y a diferencia de DB::transaction(), se debe implementar los métodos DB::rollBack(); para revertir la transacción y DB:commit(); para confirmar la transacción. De la misma forma este metodo debe ir junto a un bloque try-cath para capturar las excepciones que se produscan.

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Procesamiento por lotes [Batch insert]

Procesamiento por lotes [Batch insert]

En ocasiones debemos insertar varios registros a nuestra base de datos desde nuestra aplicación java y lo que usualmente...

Como hacer una factura en Java (Proyecto)

Como hacer una factura en Java (Proyecto)

Tiempo atras me pidieron un ejemplo de como realizar un reporte con iReport tipo factura, recibo o como le llamen, compl...

Reconocimiento facial con php

Reconocimiento facial con php

Inspeccionando los cientos de marcadores que tenia en mi firefox, me encontre un enlace web con una interesante clase pa...

Añadir código QR a reportes con iReport

Añadir código QR a reportes con iReport

En un post anterior se vio como agregar un código DataMatrix en reportes con iReport Designer sin embargo actualmente el...

Mapeo del Ecosistema de Tecnología Digital en Bolivia 2020

Mapeo del Ecosistema de Tecnología Digital en Bolivia 2020

Crecen las startups en Bolivia: La mayoría está en Santa Cruz, Cochabamba y La Paz Según el «Mapeo del Ecosistema de Tec...

JCheckBox dentro JTable con Netbeans

JCheckBox dentro JTable con Netbeans

Para colocar un JCheckBox dentro una celda de un JTable debemos sobre escribir algunas clases para que el componente pue...

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp