sql >> Base de Datos >  >> RDS >> Mysql

PHP MySQL insertando datos en varias tablas

Una solución sería usar Transacciones , que permiten obtener un comportamiento de "todo o nada".

La idea es la siguiente:

  • comienza una transacción
  • usted hace sus inserciones/actualizaciones
  • si todo está bien, confirma la transacción; que guardará todo lo que hizo durante esta transacción
  • si no, revierte la transacción; y todo lo que hiciste en él será cancelado.
  • si no se compromete y se desconecta (si su secuencia de comandos PHP muere, por ejemplo) , no se confirmará nada y lo que hizo durante la transacción no confirmada se revertirá automáticamente.

Para obtener más información, puede consultar 12.4.1. Sintaxis de START TRANSACTION, COMMIT y ROLLBACK , para MySQL.


Tenga en cuenta que las transacciones solo están disponibles para algunos motores de base de datos:

  • MyISAM no admite transacciones
  • InnoDB hace (también admite claves foráneas, por ejemplo; es mucho más avanzado que MyISAM) .