删除函数在事务pdo php mysql中不起作用

时间:2016-01-04 19:34:01

标签: php mysql pdo

我和这位同事有类似的问题:similar problem

我很惊讶pdo事务中的Delete函数行为不正常。如果我在pdo中单独使用删除功能,它可以很好地工作,但是当我将删除功能与事务中的更新功能结合使用时,它会停止工作(只有第一个查询才能工作)。我已经尝试了旧线程中的所有答案和提示,但似乎没有任何效果。有人可以帮助我吗?

我正在使用的代码:

function denyactionevent(){


        try {
            $$this->setAttribute(PDO::ATTR_AUTOCOMMIT, true);
            $$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

             $this->conn->beginTransaction();

        // product update query
        $query = "UPDATE 
                    " . $this->table_name . " 
                SET 
                    accepted = :accepted 

                WHERE
                    id = :id";

        // prepare query statement
        $stmt = $this->conn->prepare($query);

        // bind variable values
        $stmt->bindParam(':accepted', $this->accepted);
        $stmt->bindParam(':id', $this->id);

        // execute the query
        $stmt->execute();

        $query2 = "DELETE  
                   FROM event_case 
                   WHERE reference = :id
                ";

        // prepare query statement
        $stmt = $this->conn->prepare($query2);

        // bind values
        $stmt->bindParam(':id', $this->id);


    // execute the query
        $stmt->execute();   


    $this->conn->commit();
    return true;



} catch (Exception $e) {
  $stmt->rollBack();
  return false;
}
    }   

0 个答案:

没有答案