Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Transaktionsverarbeitung in PDO

Detaillierte Einführung in die Transaktionsverarbeitung in PDO

黄舟
黄舟Original
2017-04-28 17:47:112373Durchsuche

Detaillierte Einführung in die Transaktionsverarbeitung in PDO

Eine Transaktion besteht aus einer Folge von Abfrage- und/oder Aktualisierungsanweisungen. Verwenden Sie „Begin“ und „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-Anweisung 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 Richtig, die Transaktion wird endgültig festgeschrieben. Sobald eine Transaktion zurückgesetzt wird, verbleibt die Datenbank in dem Zustand, in dem sie sich vor Beginn der Transaktion befand. Wenn eine bearbeitete Datei ohne Speichern beendet wird, bleibt das ursprüngliche Erscheinungsbild der Datei erhalten. Daher kann eine Transaktion als atomare Operation betrachtet werden. Die SQL in der Transaktion wird entweder vollständig oder überhaupt nicht ausgeführt.

In den ersten beiden Artikeln „Methode 1 der Fehlerbehandlung in PDO – errorCode()-Methode “, „Methode 2 der Fehlerbehandlung in PDO – errorInfo()-Methode 》Wir haben die Methode zur Fehlerbehandlung in PDO eingeführt, dann stellen wir die Transaktionsverarbeitung in PDO im Detail vor~

Die Funktion der Transaktionsverarbeitung kann auch in PDO realisiert werden, und die Anwendungsmethode ist wie folgt :

(1) Starten Sie die Transaktion – beginTransaction()-Methode.

Die Methode beginTransaction() deaktiviert den Autocommit-Modus, bis die Transaktion festgeschrieben oder zurückgesetzt wird.

(2) Die Transaktion festschreiben – commit()-Methode

Die commit()-Methode schließt den Transaktionsübermittlungsvorgang ab und gibt bei Erfolg true zurück, andernfalls gibt sie false zurück.

(3) Transaktions-Rollback – rollBack()-Methode

Die rollBack()-Methode führt den Rollback-Vorgang der Transaktion durch.

Fügen Sie Daten über die Methoden „prepare()“ und „execute()“ zur Datenbank hinzu und stellen Sie sicher, dass die Daten über den Transaktionsverarbeitungsmechanismus korrekt zur Datenbank hinzugefügt werden können. Die spezifischen Schritte sind wie folgt:

Erstellen Sie eine PHP-Datei, definieren Sie zunächst die Datenbankverbindungsparameter, erstellen Sie eine try{...}catch{...}-Anweisung, instanziieren Sie den PDO-Konstruktor in der try{}-Anweisung, schließen Sie die Verbindung mit der Datenbank ab und Starten Sie die Transaktion über die Methode beginTransaction () und definieren Sie dann die INSERT-Anweisung, rufen Sie die im Formular übermittelten Daten über die Methode $ _POST [] ab, fügen Sie Daten über die Methoden Prepare () und Execute () zur Datenbank hinzu und schließen Sie sie ab Der Transaktionsübermittlungsvorgang erfolgt über die Methode commit(0) und schließlich wird in der Anweisung eine Fehlermeldung von Catch{} zurückgegeben, und der Rollback-Vorgang der Transaktion wird über die Methode rollBack() ausgeführt. Der spezifische Code lautet wie folgt:

<form action="3.php" name="form1" method="post">
    用户名:<input type="text" name="username">
    密码:  <input type="password" name="password">
    <input type="submit" name="Submit" value="提交">
</form>
<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$name =$_POST[&#39;username&#39;];
$password =$_POST[&#39;password&#39;];
if($_POST[&#39;username&#39;]!=""&&$_POST[&#39;password&#39;]!=""){
    $dbms = "mysql";                                  // 数据库的类型
    $dbName ="php_cn";                                //使用的数据库名称
    $user = "root";                                   //使用的数据库用户名
    $pwd = "root";                                    //使用的数据库密码
    $host = "localhost";                              //使用的主机名称
    $dsn  = "$dbms:host=$host;dbname=$dbName";
try{
    $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo
    $pdo -> beginTransaction();   //开始事务
    $query="insert into `user`(username,password) VALUES (&#39;$name&#39;,&#39;$password&#39;)";//需要执行的sql语句
    $res=$pdo->prepare($query);//准备查询语句
    $res->execute();            //执行查询语句,并返回结果集
    if($res->errorCode()){
        echo "数据添加成功";
    }else{
        echo "数据添加失败";
    }
    $pdo->commit();            //执行事务的提交操作
}catch (PDOException $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
 $pdo -> rollBack();             //执行事务的回滚
}
}
?>

Das endgültige Ausgabeergebnis lautet wie folgt:

Detaillierte Einführung in die Transaktionsverarbeitung in PDO

Nachdem Sie die oben vorgestellte Transaktionsverarbeitung gelesen haben, denken Sie, dass sie sehr einfach ist? Im nächsten Artikel werden wir den Speicherprozess in PDO weiter vorstellen. Bitte lesen Sie „Detaillierte Einführung in gespeicherte Prozeduren in PDO》!

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Transaktionsverarbeitung in PDO. 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