首页 > 解决方案 > 什么是正确的交易方式

问题描述

我试图在一次调用中进行多个查询,因此我将代码组织如下:

 try{
    $query = $this->conn->begin_transaction();
    
    $query = $this->conn->prepare("INSERT INTO table1(xx, xxx, xxxx, xxxxx, xxxxxx, xxxxxxx, xxxxxxxx, xxxxxxxxx, xxxxxxxxxx, xxxxxxxxxxx, xxxxxxxxxxx) 
    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");

    $query->bind_param("sssssssssss", $var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8,  $var8,  $var9, $var10);                                 
    $result1 = $query->execute();
    
    $var1= $xxx- $xxxx;
    $query = $this->conn->prepare("UPDATE table2 set xxx = ? WHERE xxxx = ?");
    $query->bind_param("ss", $var1, $var2);  
    $result2 = $query->execute(); 
     
    $query = $this->conn->prepare("INSERT INTO table3 (xx, xxx, xxxx, xxxxx, xxxxxx, xxxxxxx) 
    VALUES (?, ?, ?, ?, ?, ?) ");
    $query->bind_param("ssssss", $var1, $var2, $var3, $var4, $var5, $var6);    
    $result3 = $query->execute(); 
    
    $query = $this->conn->commit();

    if($result1 == true AND $result2 == true AND $result3 == TRUE){
        return "Success";
    }
    exit();   
}catch (Exception $e){
    $this->conn->rollback(); 
    throw $e;   
} 

不确定这是否是正确的方法,但如果所有查询都不正确,我不想在数据库中插入/更新记录。如果有人可以通过代码告诉我他的想法,这将对我有很大帮助,这很好,但我不确定这是否是一个好方法。

标签: phpmysqlitransactions

解决方案


推荐阅读