Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/04/2018, 09:29
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: algún consejo ? o mejora para mi función de transacción

Cuando se hace una operación que involucre más de una tabla, se aconseja el uso de transacciones.

Quizá mpozo no notó que estás usando más de una tabla.

Lo que sí, es que si usas consultas preparadas no necesitas escapar los datos de entrada, sería redundante.

Mi único comentario es que no sé como estás obteniendo los saldos, ya que en tu código no se ve, y cuando se habla de transacciones seguras y que vas a actualizar, como en este caso el saldo, la obtención de datos mediante SELECT debe hacerse usando FOR UPDATE.

Es decir:
1. Inicias la transacción
2 Obtienes el saldo con SELECT saldo FROM tabla FOR UPDATE
3 Haces las operaciones necesarias.
4 Actualizas el saldo, sea restando o sumando.
5 Finalizas la transacción.

De lo contrario, podría darse el caso, aunque sea muy remoto, de que dos o más usuarios quieran hacer la misma transacción y se generen más que inconsistencias, pérdida de valores.