这是我的(有很少的伪代码):
$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);
答案 0 :(得分:2)
一个。因为mysqli::begin_transaction
出现在PHP 5.5.0中。你的PHP版本看起来很低。
湾取决于您的要求。启用autocommit
将使MySQL自动提交事务,并在执行每个SQL语句后开始另一个事务。