Archivo
Archivo
Etiquetas
Etiquetas
Entradas populares de este blog
Hacer un select readonly con jQuery
Listado de palabras en castellano
Transacciones MySQLi vs MSSQL
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Para los que estamos acostumbrados a trabajar con SQL Server, el manejo de transacciones es bastante transparente y sencillo y se apoya de 3 funciones sqlsrv_begin_transaction, sqlsrv_rollback y sqlsrv_commit.
¿Qué quiere decir esto? Pues que u inicias una transacción cuando quieres y cuando la terminas o la cancelas el sistema vuelve a su estado incial.
¿Cómo gestiona las transacciones MySQL?
Pues también utiliza 3 funciones autocommit, rollback y commit.
¿Cuál es la diferencia?
Pues que para iniciar transacciones utilizando MySQLi tienes que ejecutar autocommit(false) lo cual modifica el estado global de esa conexión, con lo cual al cancelar (rollback) o ejecutar (commit) una transaccción el sistema no vuelve a su estado inicial sino hasta que ejecutas autocommit(true).
Esto es un verdadero engorro, vemos un ejemplo que hace lo mismo en ambos sistemas.
Transacciones con MSSQL
sqlsrv_begin_transaction($conexion)
if(bien)
sqlsrv_commit($conexion)
else
sqlsrv_rollback($conexion)
Transacciones con MySQLi
autocommit(false)
if(bien){
commit()
autocommit(true)
}
else{
rollback()
autocommit(true)
}
¿Veis la diferencia?
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios
autocommit(false) //Inicio Transaccion
if(bien){
commit()
}
else{
rollback()
}
autocommit(true) //Fin transaccion
Y ahora no se ve tan engorroso y es mas bien algo claro.