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.
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’
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!!!
¿Que es y para que sirve una imagen forense? Una imagen forense es un «clon» (copia bit a bit) de algún dispositivo como[...]
En este tutorial Android Bolivia 🙂 construiremos una sencilla aplicación para realizar llamadas por teléfono, aprenderem[...]
Crecen las startups en Bolivia: La mayoría está en Santa Cruz, Cochabamba y La Paz Según el «Mapeo del Ecosistema de Tec[...]
Java Excel API es un API para java que permite a los desarrolladores leer y escribir en hojas de cálculo Excel. jexcelap[...]
Existen muchos clientes REST disponibles tanto para instalar en tu PC como para utilizar directamente desde la nube, sin[...]
Sketch2Code es un proyecto de Microsoft el cual usa IA (Inteligencia Artificial) para transformar el diseño de una inter[...]