Pues yo no lo haria asi, para mi la transaccion inicia antes de invocar la funcion, y la funcion me debe devolver 0 si se hizo bien 1 si hubo error
luego de invocar la funcion checo el resultado si es 0 commit de lo contrario rollback.
Espero te sirva
Cita:
Iniciado por albertoshu
Hola a todos,
Una dudilla sobre transacciones. Tengo el siguiente codigo:
Código PHP:
1: BEGIN;
2: INSERT en bbdd; Si falla ROLLBACK;
3. otro_acceso_a_la_bbdd();
4: COMMIT;
5: function otro_acceso_a_la_bbdd(){
6: INSERT en bbdd;Si falla ROLLBACK;
7: }
Si se ejecuta el insert de la linea 2, entonces obligatoriametne se tiene que ejecutar el insert de la linea 6 y por eso incluyo estos dos insert dentro de la transacción delimintada por la lines 1 y 4.
El tema es que la funcion otro_acceso_a_la_bbdd() también puede ser invocada desde otra parte del código y, posiblemente, sin estar dentro de una transaccion. En tal caso, si fallara el insert de la linea 6 se ejecutaría un Rollback sin que se hubiera iniciado ninguna transaccion....
Hay algún problema por esto?
Un saludo a todos y gracias por adelantado.