sql >> Database >  >> RDS >> Mysql

PHP MySQL gegevens invoegen in meerdere tabellen

Een oplossing zou zijn om Transacties te gebruiken , die het mogelijk maken om "alles of niets" gedrag te krijgen.

Het idee is het volgende:

  • u start een transactie
  • u doet uw invoegingen/updates
  • als alles in orde is, begaat u de transactie; waarmee u alles wat u tijdens deze transactie hebt gedaan, opslaat
  • zo niet, dan draai je de transactie terug; en alles wat je erin deed wordt geannuleerd.
  • als je niet vastlegt en de verbinding verbreekt (als je PHP-script sterft, bijvoorbeeld) , er wordt niets vastgelegd en wat u tijdens de niet-vastgelegde transactie hebt gedaan, wordt automatisch teruggedraaid.

Voor meer informatie kunt u een kijkje nemen op 12.4.1. START TRANSACTIE, COMMIT en ROLLBACK-syntaxis , voor MySQL.


Houd er rekening mee dat transacties alleen beschikbaar zijn voor sommige DB-engines:

  • MijnISAM ondersteunt geen transacties
  • InnoDB doet (het ondersteunt bijvoorbeeld ook buitenlandse sleutels -- het is veel geavanceerder dan MyISAM) .



  1. ListView toont niet de juiste afbeeldingen die in de tekenbare staan ​​op basis van hun naam in sqlite

  2. verwijzen naar kolommen voor automatisch ophogen?

  3. Hoe beperk je het aantal includes op een comesToMany-associatie in Sequelize JS?

  4. Organiseer gegevens op basis van Timestamp mysql + PHP