MySQL不会插入事务

时间:2016-02-08 00:45:02

标签: php mysql sql mysqli transactions

我正在尝试让事务执行。我可以得到一个正常的查询来执行但不是一个事务。

这些是我的疑问:

$queries[] = "START TRANSACTION";
$queries[] = "INSERT INTO `customer_register` ( `c_email`,`web_customer_id`,`c_realname`,`c_password` ) VALUES ( 'support@mail.com','1','Name','test' )";
$queries[] = "COMMIT";

提交交易的方法:

private function commit_transaction($queries) {

    foreach($queries as $query) {
        if($this -> db -> blank_query($query)) {
            continue;
        } else {
            $this -> db -> blank_query("ROLLBACK");
            return false;
        }
    }
    return true;
}

执行查询的方法:

public function blank_query($query) {
    $result = mysqli_query($this -> link, $query);
    if(mysqli_errno($this -> link)) {
        if(!empty($this -> note)) {
            $this -> note -> pushNotification('error', "Error executing blank query");
        }
        $this -> write_to_log('Error: ' . mysqli_error($this -> link) . ' Query: ' . $query);
        return false;
    } else {
        return $result;
    }
}

如果我这样做:

$this -> db -> blank_query("INSERT INTO `customer_register` ( `c_email`,`web_customer_id`,`c_realname`,`c_password` ) VALUES ( 'support@mail.com','1','Name','test' )");

一切都很好,但这可能是在页面加载时总计10,20或100个查询,所以我需要快速。 该事务也在phpmyadmin中正常提交:

"START TRANSACTION; INSERT INTO `customer_register` ( `c_email`,`web_customer_id`,`c_realname`,`c_password` ) VALUES ( 'support@mail.com','1','Name','test' ); COMMIT;"

0 个答案:

没有答案