Heim  >  Artikel  >  Datenbank  >  Was ist Transaktionsverarbeitung in MySQL? (Codebeispiel)

Was ist Transaktionsverarbeitung in MySQL? (Codebeispiel)

青灯夜游
青灯夜游nach vorne
2018-11-13 15:57:372836Durchsuche

Der Inhalt dieses Artikels soll Ihnen vorstellen, was MySQL-Transaktionsverarbeitung ist. (Codebeispiel). Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

MySQL-Transaktionsverarbeitung

Schritte:

1. Transaktion startenTransaktion starten

Wenn wir eine Transaktion starten, werden alle unsere SQL-Operationen im Speicher ausgeführt, aber es gibt keine echte Rückmeldung an die Datei auf der Datenbankfestplatte!

2. Rollback Rollback

Rollback ist die Wiederherstellung des ursprünglichen Zustands vor Beginn der Transaktion!

Hinweis: Der Rollback-Vorgang schließt eine Transaktion automatisch. Wenn Sie die Transaktion erneut ausführen möchten, müssen Sie die Transaktion erneut öffnen!

3. SendenCommit

Grundprinzipien von Transaktionen

Die normale Ausführung wird sofort ausgeführt und wirksam, da MySQL standardmäßig automatisch die Ausführung der SQL-Anweisung übermittelt! Daher besteht das Wesentliche beim Öffnen einer Transaktion darin, die vorherige automatische Übermittlungsfunktion zu deaktivieren und sie stattdessen manuell (mithilfe der Commit-Anweisung) durch den Benutzer zu übermitteln! [Empfohlene verwandte Video-Tutorials: MySQL-Tutorial]

Zusammenfassung der Schritte der Transaktion:

1, Öffnen Sie die Transaktion

2, Wenn die Ausführung erfolgreich ist, senden Sie den Commit

3, Wenn eine SQL-Anweisung nicht ausgeführt werden kann, führen Sie einen Rollback durch!

Beispiele für die Transaktionsverarbeitung:

Die typischste Transaktionsverarbeitung ist das Ausleihen und Zurückzahlen von Geld, Das Folgende ist ein Beispiel für die Rückgabe von 1.000 Yuan durch Zhang San an Li Si:

Überprüfen Sie zunächst die jeweiligen Geldbeträge in der Datenbank

Das Folgende ist die Verarbeitung des Rückgabecodes der Geldtransaktion:

<?php  

/**
* MySQL实现事务操作
*/

echo "<meta charset=utf-8>";

// 1 连接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);
mysql_query('set names utf8');

// 2  开启事务
mysql_query("start transaction");
//设置一个变量,用来判断所有sql语句是否成功
$flag = true;

// 2.1执行事务中的一组sql语句 
   
// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";
$res = mysql_query($sql);
if (!$res) {
    //若sql语句执行失败,把$falg设置为false
    $flag = false;
}

//张三的money-1000
$sql = "update pdo set money=money-1000 where name='张三'";
$res = mysql_query($sql);
if (!$res) {
    //若sql语句执行失败,把$falg设置为false
    $flag = false;
}

// 2.2 判断事务是否执行成功
if ($flag) {
    //所有sql语句执行成功,把sql语句提交
    mysql_query('commit');
    echo "还钱成功!";
}else{
    // 如其中一条执行失败,则回滚到事务开启之前的状态
    mysql_query('rollback');
    echo "还钱失败!";
}

Ergebnis:

Nachfolgend schreiben wir bewusst eines der Felder Falsch, prüfen, ob die Transaktion normal abgewickelt wird und ob sich der Geldbetrag in der Datenbank geändert hat!

// 李四的money+1000
$sql = "update pdo set mone=money+1000 where name='李四'";  //把moeny字段错写成mone

Ergebnis:

Was ist Transaktionsverarbeitung in MySQL? (Codebeispiel)

Das Ergebnis ist, dass die Rückzahlung fehlgeschlagen ist, und der entsprechende Geldbetrag in der Datenbank hat sich nicht geändert, was darauf hinweist, dass die Transaktion nicht festgeschrieben wird, wenn eine bestimmte Anweisung nicht erfolgreich ausgeführt wird, sondern ein Rollback durchgeführt wird, um die Daten vor dem Start der Transaktion wiederherzustellen. Dies ist auch die Rolle der Verwendung von Transaktionen , nur, wenn alle SQL-Anweisungen in der Transaktion ausgeführt werden. Die Transaktion wird nur dann festgeschrieben, wenn sie erfolgreich ist, andernfalls wird sie zurückgesetzt!

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Das obige ist der detaillierte Inhalt vonWas ist Transaktionsverarbeitung in MySQL? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen