2016-06-20 32 views
0

我创造了这样一个交易:尔康交易无法正常工作正确

$this->db->begin(); 
$topic = new Topic(); 
$topic->assign($data); 
$topic->save(); 

var_dump($this->db->isUnderTransaction()); // bool(true) 

$this->db->rollback(); 

var_dump($this->db->isUnderTransaction()); // bool(false) 

但是,数据库仍然改变并插入一个新行。回滚方法不起作用。

回答

2

$di->set只有在第二个参数为“TRUE”时才会共享方法。

$di->set('db', function() use($conf) { 
    return new DbAdapter([ 
     'host' => $conf->db->host, 
     'username' => $conf->db->username, 
     'password' => $conf->db->password, 
     'dbname' => $conf->db->dbname, 
     'options' => [ 
      \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, 
      \PDO::ATTR_PERSISTENT => true 
     ] 
    ]); 
}, true);