Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP MySQL fügt Daten in mehrere Tabellen ein

Eine Lösung wäre die Verwendung von Transaktionen , die ein "Alles-oder-Nichts"-Verhalten ermöglichen.

Die Idee ist die folgende:

  • Sie starten eine Transaktion
  • Sie führen Ihre Einfügungen/Aktualisierungen durch
  • Wenn alles in Ordnung ist, bestätigen Sie die Transaktion; wodurch alles gespeichert wird, was Sie während dieser Transaktion gemacht haben
  • Wenn nicht, machen Sie die Transaktion rückgängig; und alles, was Sie darin getan haben, wird storniert.
  • wenn Sie nicht festschreiben und die Verbindung trennen (wenn Ihr PHP-Skript zum Beispiel stirbt) , wird nichts festgeschrieben, und was Sie während der nicht festgeschriebenen Transaktion getan haben, wird automatisch rückgängig gemacht.

Weitere Informationen finden Sie unter 12.4.1. START TRANSACTION-, COMMIT- und ROLLBACK-Syntax , für MySQL.


Beachten Sie, dass Transaktionen nur für einige DB-Engines verfügbar sind:

  • MyISAM unterstützt keine Transaktionen
  • InnoDB tut (es unterstützt zum Beispiel auch Fremdschlüssel -- es ist weit fortgeschrittener als MyISAM) .