Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Schritte zur Verwendung von PDO-Transaktionen in PHP

Detaillierte Erläuterung der Schritte zur Verwendung von PDO-Transaktionen in PHP

php中世界最好的语言
php中世界最好的语言Original
2018-05-16 11:16:071564Durchsuche

Dieses Mal erkläre ich Ihnen ausführlich die Schritte zur Verwendung von PDO-Transaktionen in PHP. Was sind die Vorsichtsmaßnahmen für die Verwendung von PDO-Transaktionen in PHP?

Zusammenfassung:

Behandeln Sie mehrere SQL-Vorgänge (Hinzufügen, Löschen, Ändern) als eine Operationseinheit, entweder alle erfolgreich oder alle fehlschlagen.

Ein einzelnes Datenelement erfordert keine Transaktionsverarbeitung

Die zu bedienende Tabelle muss eine Tabelle vom Typ innoDB sein (unterstützende Transaktionen)

In MySQL häufig verwendete Tabellentypen: MyISAM ( nicht-transaktional) Hinzufügen, Löschen und Ändern Schnelle Geschwindigkeit, hohe InnodB-Sicherheit (Transaktion)

Ändern Sie den Tabellentyp in den Typ innoDB

mysql> alter table stu engine=innodb;

Verwenden Sie:

Auf Basis der PDO-Vorverarbeitung das folgende Format hinzugefügt:

try{
$m->beginTransaction();//开启事务处理
//PDO预处理以及执行语句...
$m->commit();//提交事务
}catch(PDOException $e){
$m->rollBack();//事务回滚
//相关错误处理
}

Beispiel:

$m = new PDO($dsn,$user,$pwd);
$m->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
try{
$m->beginTransaction();//开启事务处理
$stmt=$m->prepare("insert into stu(name,sex,age,classid)values(?,?,?,?)");
$data=array(
array("user1",1,22,"lamp76"),
array("user2",1,20,"lamp76"),
array("user3",0,22,"lamp76")
);
foreach($data as $v){
$stmt->execute($v);
echo $m->lastInsertId();
}
$m->commit();
echo "提交成功!";
}catch(PDOException $e){
$m->rollBack();//回滚
die("提交失败!");
}

Ergänzung: Kommen Sie noch einmal. Analyse eines Beispiels für die MySQL-Transaktionsverarbeitung und den Rollback-Vorgang in PDO unter Verwendung von PDO

Übersicht:

Eine Transaktion besteht aus einer Abfrage und/oder einer Folge von Aktualisierungsanweisungen. Verwenden Sie „Begin“, „Start Transaction“
, um eine Transaktion zu starten, „Rollback“, um die Transaktion zurückzusetzen, und „Commit“, um die Transaktion festzuschreiben. Nach dem Starten einer Transaktion können mehrere SQL-Abfragen oder Aktualisierungsanweisungen vorhanden sein. Nach der Übermittlung jeder SQL
sollten auch Anweisungen vorhanden sein, um festzustellen, ob sie korrekt ausgeführt werden, um zu bestimmen, ob im nächsten Schritt ein Rollback durchgeführt werden soll Alle werden korrekt ausgeführt. Anschließend wird die Transaktion festgeschrieben.
Sobald die Transaktion zurückgesetzt wurde, verbleibt die Datenbank im Zustand vor dem Start der Transaktion. Ebenso wie wenn eine bearbeitete Datei ohne Speichern beendet wird, bleibt das ursprüngliche Erscheinungsbild der Datei selbstverständlich erhalten.
Eine Transaktion kann also als atomare Operation betrachtet werden und die SQL in der Transaktion wird entweder vollständig oder überhaupt nicht ausgeführt.

MYSQL-Transaktionsverarbeitungsschritte für PDO in PHP:

① Deaktivieren Sie die automatische Übermittlung

②. Aktivieren Sie die Transaktionsverarbeitung

③ . Wenn es eine Ausnahme gibt, die Ausnahme auslösen Prompt und dann zurücksetzen

④ Automatische Übermittlung aktivieren

Hinweis:

Nur ​​der InnoDB-Treiber von MySQL unterstützt die Transaktionsverarbeitung

Beispiel:

rrree

Ich glaube, Sie haben den Fall in diesem Artikel gelesen. Nachdem Sie die Methode gemeistert haben, achten Sie bitte auf andere verwandte Artikel auf der chinesischen PHP-Website, um weitere spannende Inhalte zu erhalten!

Empfohlene Lektüre:

Detaillierte Erklärung der Schritte zur Verwendung von Curl zum Kopieren von IP und Verweisen in PHP

Detaillierte Erklärung der Schritte zur Implementierung einer Nachrichtenwarteschlange mit PHP+MySQL

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Verwendung von PDO-Transaktionen 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