MySQL自动提交与begin_transaction

时间:2013-12-04 21:00:44

标签: php mysql transactions

这是我的(有很少的伪代码):

$this->db = new mysqli ( $host, $user, $dbpw, $database );
try {
     $this->db->mysqli->autocommit(FALSE);
     $sql = 'SOME SQL STATEMENT';
     $this->db->execute( $sql );
     $this->db->mysqli->commit();
}
catch (Exception $e)
{
   echo($e);
   $this->db->mysqli->rollback();
}

db-class有一些我需要的增强功能但能够使用完整的mysqli-class。

我有两个问题。

一个。为什么我不能用

开始交易
$this->db->mysqli->begin_transaction();

它抛出未知方法错误。我真的不明白。

湾我必须使用

$this->db->mysqli->autocommit(TRUE);

1 个答案:

答案 0 :(得分:2)

一个。因为mysqli::begin_transaction出现在PHP 5.5.0中。你的PHP版本看起来很低。

湾取决于您的要求。启用autocommit将使MySQL自动提交事务,并在执行每个SQL语句后开始另一个事务。