Heim > Backend-Entwicklung > PHP-Tutorial > Informationen zur PDO-Transaktionsfunktion

Informationen zur PDO-Transaktionsfunktion

autoload
Freigeben: 2023-04-09 19:42:01
Original
3146 Leute haben es durchsucht

Definition: Die Transaktionsfunktion PDO ist keine zusätzliche Funktion von PDO, sondern eine Modifikation der Transaktionsoperationen, die ursprünglich von MySQL unterstützt wurden. Bestimmte Kapselungsimplementierung . Hinweis: Ob die Transaktionsausführung erfolgreich ist, hängt davon ab, ob die Speicher-Engine, die MySQL entspricht, dies unterstützt. PDO事务功能,并非PDO额外多出了一项功能,而是将原来MySQL所支持的事务操作进行了一定的封装实现。注意:事务执行是否成功是由MySQL对应的存储引擎是否支持决定的。

    1.事务功能回顾:事务是指改变默认的一次操作一次写入数据表的机制,而是通过事务日志记录操作,在最后通过一次性操作写入到数据表。

  • 开启事务:start transaction,写操作停止直接写入数据表,而是记录到事务日志

  • 事务操作:具体的写操作,通常多个步骤多条指令

  • 提交事务:即事务操作结束

                    成功提交:commit,所有事务日志内容同步到数据表,并清空当前事务日志

                    失败回滚:rollback,直接清空当前事务日志

    2.PDO类中提供一套方案来实现事务操作

<?php
$pdo = new PDO(&#39;mysql:host=localhost;port=3306;dbname=my_database&#39;,&#39;root&#39;,&#39;root&#39;);
$pdo->beginTransaction() or die(&#39;事务开启失败&#39;);//开启事务
$pdo->exec(&#39;insert into student values()&#39;);//执行事务

//终止事务
$pdo->commit();				//成功提交
$pdo->rollback();			//失败回滚
Nach dem Login kopieren

3.在事务操作中,有一种回滚点机制,在PDO中没有实现,如果有必要,可以通过SQL指令 1. Überprüfung der Transaktionsfunktion

: Unter „Transaktion“ versteht man die Änderung des standardmäßigen Ein-Operations-Mechanismus, bei dem einmal in die Datentabelle geschrieben wird, der Vorgang jedoch über das Transaktionsprotokoll aufgezeichnet und schließlich durch eine Eins in die Datentabelle geschrieben wird -Zeitbetrieb.

  • Transaktion starten: transaktion starten, der Schreibvorgang stoppt das direkte Schreiben in die Datentabelle, wird aber in der Transaktion aufgezeichnet log< /li>
  • Transaktionsvorgang: ein spezifischer Schreibvorgang, normalerweise mehrere Schritte und mehrere Anweisungen
  • Commit-Transaktion: Das heißt, der Transaktionsvorgang endet🎜🎜 Erfolgreiche Übermittlung: commit</code >, alle Transaktionsprotokollinhalte mit der Datentabelle synchronisieren und das aktuelle Transaktionsprotokoll löschen<br/>🎜🎜                   Rollback fehlgeschlagen: <code>rollback, aktuelles Transaktionsprotokoll direkt löschen
    🎜
  • < /ul>🎜 2. Die PDO-Klasse bietet eine Lösung zur Implementierung von Transaktionsoperationen🎜
    🎜
    <?php
    $pdo = new PDO(&#39;mysql:host=localhost;port=3306;dbname=my_database&#39;,&#39;root&#39;,&#39;root&#39;);
    $pdo->beginTransaction() or die(&#39;事务开启失败&#39;);//开启事务
    $pdo->exec(&#39;insert into student values()&#39;);//执行事务
    //设置回滚点
    $pdo->exec(&#39;savepoint sp1&#39;);
    
    //继续执行事务...
    
    //回滚
    $pdo->exec(&#39;rollback to sp1&#39;);
    
    //终止事务
    $pdo->commit();				//成功提交
    $pdo->rollback();			//失败回滚
    ?>
    Nach dem Login kopieren
    🎜 3. Bei Transaktionsoperationen gibt es einen Rollback Punkt Der Mechanismus ist nicht in PDO implementiert. Bei Bedarf kann er über SQL-Befehl-Einstellungen implementiert werden🎜🎜rrreee🎜Empfohlen: 🎜php-Tutorial🎜, 🎜 PHP-Video-Tutorial🎜🎜

    Das obige ist der detaillierte Inhalt vonInformationen zur PDO-Transaktionsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage