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 nicht nur die Basisinformationen der Person, sondern auch die mit der Person verbundenen Informationen wie Postfach, Artikel usw. löschen . Auf diese Weise stellt dieseDatenbankoperation eine Transaktion dar!
In MySQL unterstützen nur Datenbanken oder Tabellen, die die Innodb-Datenbank-Engine verwenden, Transaktionen.
Transaktionsverarbeitung kann verwendet werden, um die Integrität der Datenbank aufrechtzuerhalten und sicherzustellen, dass Stapel von SQL-Anweisungen entweder alle oder gar nicht ausgeführt werden.
Transaktionen werden zum Verwalten von Einfüge-, Aktualisierungs- und Löschanweisungen verwendet
Im Allgemeinen müssen Transaktionen vier Bedingungen (ACID) erfüllen: Atomarität (Atomizität), Konsistenz (Stabilität) , Isolation (Isolation), Haltbarkeit (Zuverlässigkeit)
1. Atomarität von Transaktionen: Eine Reihe von Transaktionen ist entweder erfolgreich oder wird zurückgezogen.
2. Stabilität: Bei illegalen Daten (Fremdschlüsselbeschränkungen und dergleichen) wird die Transaktion zurückgezogen.
3. Isolation: Transaktionen laufen unabhängig ab. Wenn sich das Ergebnis einer Transaktion auf andere Transaktionen auswirkt, werden die anderen Transaktionen zurückgezogen. Eine 100-prozentige Isolierung von Transaktionen erfordert Einbußen bei der Geschwindigkeit.
4. Zuverlässigkeit: Nach einem Software- oder Hardware-Absturz verwendet der InnoDB-Datentabellen--Treiber die Protokolldatei, um sie zu rekonstruieren und zu ändern. Zuverlässigkeit und hohe Geschwindigkeit sind nicht kompatibel. Die Option innodb_flush_log_at_trx_commit bestimmt, wann Transaktionen im Protokoll gespeichert werden.
PHP-Transaktionsverarbeitungsdaten-Implementierungscode, Freunde in Not können sich darauf beziehen.
public function insertUser ($userArray){ foreach ($userArray as $key => $value) { @$field .= "$key,"; @$content .= "'$value',"; } $field = ereg_replace(',$', '', $field); $content = ereg_replace(',$', '', $content); $db = db_connect(); //连接数据库 $db->autocommit(FALSE); //设置为非自动提交——事务处理 $sql1 = "INSERT INTO t_user (".$field.") VALUES (".$content.")"; $result1 = $db->query($sql1); $sql2 = "INSERT INTO t_userpost (f_username) VALUES ('".$userArray['f_username']."')"; $result2 = $db->query($sql2); if ($result1 && $result2) { $db->commit(); //全部成功,提交执行结果 echo '提交'; } else { $db->rollback(); //有任何错误发生,回滚并取消执行结果 echo '回滚'; } $db->close(); }
Das obige ist der detaillierte Inhalt vonBeispielcode für PHP-Transaktionsverarbeitungsdaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!