¿Es posible hacer transacciones de bases de datos MySQL y reversiones con php?
-
06-09-2019 - |
Pregunta
ejemplo: hacer una transferencia de pago del usuario A al usuario B. Cuenta de usuario A: -10 USD Cuenta de usuario B: +10 USD
Si hay una transacción, y algo va mal, todo se deshace. Así, con transacciones que no suceda que la cuenta de usuario A recibe disminuido en un 10, mientras que la cuenta de usuario B no consigue aumentó en un 10.
Sé que la gente java hacen uso de las transacciones y reversiones por todo el lugar. Pero nunca he oído hablar de PHP-chicos haciendo eso.
No hay solución correcta
Otros consejos
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
Asegúrese de que sus tablas utilizan motores InnoDB
:. MyISAM
no admite transacciones
Actualizar el comentario
InnoDB
es uno de los dos motores de almacenamiento principales utilizados por MySQL
, siendo el otro MyISAM
.
MySQL
viene con soporte InnoDB
compilado por defecto y, de hecho, se necesita un poco de esfuerzo para desactivarlo.
Nunca he oído hablar de MySQL
con InnoDB
deshabilitado incluso más barato de los proveedores de alojamiento.
Si utiliza PDO, también tiene soporte de transacciones
http://us2.php.net/manual/en/pdo .begintransaction.php
Como ya se dijo, asegúrese de usar el motor de almacenamiento InnoDB.