MySQL-Transaktionen werden hauptsächlich zur Verarbeitung von Daten mit großen Vorgängen und hoher Komplexität verwendet. Wenn Sie beispielsweise im Personalverwaltungssystem eine Person löschen, müssen Sie die grundlegenden Informationen der Person löschen und auch die mit der Person verbundenen Informationen wie Postfach, Artikel usw. löschen. Auf diese Weise werden diese DatenbankoperationenDie Anweisung stellt eine Transaktion dar!
Dieser Artikel stellt hauptsächlich die Methode zum Betrieb von MySQL-Transaktionen vor und analysiert die ACID-Eigenschaften im Detail in Form von Beispielen. Freunde in Not können sich darauf beziehen
Die Beispiele in diesem Artikel beschreiben, wie PHP MySQL-Transaktionen ausführt, und werden Ihnen als Referenz zur Verfügung gestellt. Die spezifische Methode lautet wie folgt:
Im Allgemeinen sollten Transaktionen ACID-Eigenschaften aufweisen. Die sogenannte ACID wird mit den Anfangsbuchstaben der vier Wörter Atomic (Atomizität), Consistent (Konsistenz), Insulated (Isolation) und Durable (Persistenz) geschrieben. Nehmen wir als Beispiel „Banküberweisung“, um ihre Bedeutung zu erklären. :
① Atomarität: Die Anweisungen, aus denen eine Transaktion besteht, bilden eine logische Einheit und nur ein Teil davon kann nicht ausgeführt werden. Mit anderen Worten: Eine Transaktion ist die kleinste unteilbare Einheit. Beispiel: Bei der Überweisung muss der Überweisungsbetrag gleichzeitig von einem Konto abgebucht und einem anderen Konto gutgeschrieben werden. Es ist unzumutbar, nur ein Konto zu ändern.
② Konsistenz: Die Datenbank ist vor und nach der Ausführung der Transaktionsverarbeitung konsistent. Das heißt, die Transaktion sollte den Systemstatus korrekt umwandeln. Beispiel: Beim Banküberweisungsprozess wird entweder der Überweisungsbetrag von einem Konto auf ein anderes Konto übertragen, oder beide Konten bleiben unverändert und es liegt keine andere Situation vor.
③ Isolation: Eine Transaktion hat keine Auswirkungen auf eine andere Transaktion. Das heißt, es ist für jede Transaktion unmöglich, eine Transaktion in einem unvollständigen Zustand zu sehen. Beispielsweise kann sich bei einer Banküberweisung vor der Übermittlung der Überweisungstransaktion eine andere Überweisungstransaktion nur im Wartezustand befinden.
④ Haltbarkeit: Die Auswirkungen der Transaktionsverarbeitung können dauerhaft gespeichert werden. Umgekehrt sollten Transaktionen allen Ausfällen standhalten können, einschließlich Server-, Prozess-, Kommunikations-, Medienausfällen usw. Beispiel: Beim Banküberweisungsprozess muss der Kontostand nach der Überweisung gespeichert werden.
In PHP hat MySQL die zugehörigen Vorgänge von MySQL-Transaktionen gut gekapselt. Das folgende Beispiel:
Der Code lautet wie folgt:
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $mysqli = new mysqli('localhost','root','','DB_Lib2Test'); $mysqli->autocommit(false);//开始事物 $mysqli->query($sql1); $mysqli->query($sql2); if(!$mysqli->errno){ $mysqli->commit(); echo 'ok'; }else{ echo 'err'; $mysqli->rollback(); }
Hier verwenden wir die PHP-MySQL-Reihe von -Funktionen , um Transaktionen durchzuführen.
Der Code lautet wie folgt:
$sql1 = "update User set ScoreCount = ScoreCount +10 where ID= '123456'"; $sql2 = "update ScoreDetail set FScore = 300 where ID= '123456'"; $sql3 = "insert into ScoreDetail ID,Score) values ('123456',60)"; $conn = mysql_connect('localhost','root',''); mysql_select_db('DB_Lib2Test'); mysql_query('start transaction'); //mysql_query('SET autocommit=0'); mysql_query($sql1); mysql_query($sql2); if(mysql_errno ()){ mysql_query('rollback'); echo 'err'; }else{ mysql_query('commit'); echo 'ok'; } // mysql_query('SET autocommit=1'); // mysql_query($sql3);
Hinweis hier:
MyISAM: unterstützt keine Transaktionen und wird für schreibgeschützte Programme verwendet zur Verbesserung der Leistung
InnoDB: unterstützt ACID-Transaktionen, Sperren auf Zeilenebene und Parallelität
Berkeley DB: unterstützt Transaktionen
Das obige ist der detaillierte Inhalt vonBeispielcode für PHP-Operationen und MySQL-Transaktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!