Heim  >  Artikel  >  Backend-Entwicklung  >  So löschen Sie eine Transaktion in PHP

So löschen Sie eine Transaktion in PHP

藏色散人
藏色散人Original
2022-11-22 09:19:291402Durchsuche

So löschen Sie PHP-Transaktionen: 1. Verwenden Sie die Methode „autocommit(false)“, um die automatische Übermittlung der Datenbank zu deaktivieren. 2. Wenn alle Operationsanweisungen erfolgreich sind, senden Sie sie über „commit()“ an die Datenbank Der Vorgang schlägt fehl. Verwenden Sie die Methode „rollback()“, um das Löschen rückgängig zu machen.

So löschen Sie eine Transaktion in PHP

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.

Wie lösche ich eine PHP-Transaktion?

php-Transaktionsverarbeitungstransaktion

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 sowie die mit der Person verbundenen Informationen wie Postfächer, Artikel usw. löschen. Auf diese Weise werden diese Datenbanken gelöscht Operationsanweisungen stellen 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 verwendet. Einfügungs-, Aktualisierungs- und Löschanweisungen verwalten.

Im Allgemeinen müssen Transaktionen 4 Bedingungen (ACID) erfüllen: Atomarität (Atomizität), Konsistenz (Stabilität), Isolation (Isolation), Haltbarkeit (Persistenz)

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. Haltbarkeit: Sobald eine Transaktion festgeschrieben ist, sind ihre Änderungen an den Daten in der Datenbank dauerhaft. Selbst wenn die Datenbank ausfällt, sollte dies keine Auswirkungen darauf haben.

Führen Sie das folgende Programm aus

$mysqli = new mysqli('localhost','root','mayi1991','mysqldemo');
if($mysqli->connect_error){
    die('数据库连接错误'.$mysqli->connect_error);
}
$sql1 = "update account set balance = balance - 2 where id = 1";
//这里故意写错指令中的balance1属性
$sql2 = "update account set balance1 = balance + 2 where id = 2";        
$result1 = $mysqli->query($sql1);
$result2 = $mysqli->query($sql2);
if(!$result1 || !$result2){
    die('操作错误'.$mysqli->error);
}else{
    die('操作成功');
}
$mysqli->close();

Obwohl der obige Code einen Fehler meldet, wurde der Kontostand mit der ID=1 geändert.

Wir möchten gleichzeitig ändern, wenn Es liegt ein Fehler vor. Es wird sich derzeit nicht ändern. Wir benötigen eine „Transaktionskontrolle“, um die „Konsistenz“ sicherzustellen.

Die Methode, die wir verwenden müssen, ist autocommit() commit().

$mysqli = new mysqli('localhost','root','mayi1991','mysqldemo');
if($mysqli->connect_error){
    die('数据库连接错误'.$mysqli->connect_error);
}
//关闭数据库自动提交
$mysqli->autocommit(false);
$sql1 = "update account set balance = balance - 2 where id = 1";
//这里故意写错属性balance1
$sql2 = "update account set balance1 = balance + 2 where id = 2";
$result1 = $mysqli->query($sql1);
$result2 = $mysqli->query($sql2);
if(!$result1 || !$result2){
    die('操作错误'.$mysqli->error);
    $mysqli->rollback();    //事务回退
}else{
    //操作全部正确后再提交
    $mysqli->commit();
}
$mysqli->close();

Verwenden Sie zuerst die Methode autocommit(false), deaktivieren Sie die automatische Datenbankübermittlung und senden Sie dann commit() an die Datenbank.

Wenn der Vorgang fehlschlägt, verwenden wir zum Rollback die Methode rollback() zurück.

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo löschen Sie eine Transaktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn