关于事务控制
我用CI写了个事务控制的代码断,发觉貌似没有回滚的。我写了如下:
$this->db->trans_start(TRUE); // 查询将被回滚
$this->db->insert('aaa',$data);
$this->db->trans_complete();
不是说这个trans_start(true),是测试事务吗? 应该会自动回滚的啊。 但是我数据的确被插入到数据库了。并没有回滚。
表类型:InnoDB avinmo 发表于 2011-1-30 19:11
后来找到原因了。 但一直忘记上来告诉下大家。现在补上。
要使用CI的事务。务必在建立MYSQL数据库的时候 ...
你的意思是,数据库也必须是innodb引擎吗,光操作的表是innodb引擎不行吗
看了一下手册确实是这么说的,难道是 CI bug? 不知道事务是否支持ActiveRecord,换用 $this->db->query(''); 试试看。 晕倒,没看清,原来楼主用了 AR,那有可能不支持吧。 $this->db->trans_start(TRUE); // 查询将被回滚
//$this->db->insert('product_brand',$brand);
$sqlstr = "INSERT INTO `admins` (`account`, `pwd`, `power`) VALUES ('adminddd', '21232f297a57a5a743894a0e4a801fc3', 100);";
$this->db->query($sqlstr);
$this->db->trans_complete();
一样不行。。。 数据库里照样插入数据了。 有谁用过的? 告诉下。。:dizzy: 建议你还是看一下源码吧,如果根据手册写不行,那有可能是 BUG。 没有这方面的研究,关注啊~ 后来找到原因了。 但一直忘记上来告诉下大家。现在补上。
要使用CI的事务。务必在建立MYSQL数据库的时候选择InnoDB引擎。 回复 9# avinmo
这肯定呀。。。MyISAM 引擎不支持事务呀。。。
页:
[1]
2