Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Laravel / Aprende a usar transacciones con Laravel

Aprende a usar transacciones con Laravel

Por 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

Artículos similares

Conectar SQL Server con PHP 8.x

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

Elimina el fondo de tus fotografías en 5 segundos

Si te gusta realizar tus propios memes o foto montajes pero tienes poca o nula experiencia en editores gráficos como Pho[...]

Lightweight Java Game Library

¿Quien no ha querido programar un juego? creo que la mayoría si no es que todos los que conocen de programación sin impo[...]

7 herramientas online que te serán muy útiles para crear infografias

La infografía es una representación visual de los propios textos; en la que intervienen descripciones, narraciones o int[...]

Conviértete en un pintor digital con esta app

Las aplicaciones con IA (Inteligencia Artificial) son cada vez más comunes y se encuentran en diferentes dispositivos de[...]

Reproduce archivos MP3 desde android

Reproducir archivos de audio en nuestras aplicaciones android. Necesitamos IDE Eclipse y SDK Android instalado Un archiv[...]