Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delete函数在事务pdo php mysql中不起作用_Php_Mysql_Pdo - Fatal编程技术网

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

Delete函数在事务pdo php mysql中不起作用,php,mysql,pdo,Php,Mysql,Pdo,我和这位同事有类似的问题: 我感到惊讶的是,pdo事务中的Delete函数不能正常工作。如果我在pdo中单独使用delete函数,它会工作得很好,但是当我在事务中将delete函数与update函数结合使用时,它会停止工作(只有第一个查询工作)。我已经尝试了所有的答案和提示从旧线程,但似乎没有任何工作。有人能帮我吗 我正在使用的代码: function denyactionevent(){ try { $$this->setAttribute(P

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

我感到惊讶的是,pdo事务中的Delete函数不能正常工作。如果我在pdo中单独使用delete函数,它会工作得很好,但是当我在事务中将delete函数与update函数结合使用时,它会停止工作(只有第一个查询工作)。我已经尝试了所有的答案和提示从旧线程,但似乎没有任何工作。有人能帮我吗

我正在使用的代码:

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;
}
    }   

这可能取决于您调用该函数的方式(未知)以及变量范围是否存在问题。情况似乎并非如此,因为该事务中的第一个查询似乎工作正常。
$$this->setAttribute
-这不是太多了吗?@VolkerK错误报告会捕捉到这一点吗?“错误报告会捕捉到吗?”-它会导致致命错误“可捕捉致命错误:类的对象…”。。。无法转换为…@Fred