事务错误后也会保存数据

时间:2013-04-17 07:08:30

标签: php mysql codeigniter

我正在使用codeigniter而我正在使用像

这样的代码
$this->db->trans_start(); 
some 5 mysql inserts and 
$this->db->trans_complete();

我在第5次查询时收到类似DB Transaction Failure的错误,即一些重复输入错误。但仍然我的前4个查询都被执行了。它不应该回滚吗?

2 个答案:

答案 0 :(得分:0)

使用"Strict Mode"进行交易。如果其中一个查询失败,将自动回滚其他查询。点击here查看详细信息。希望它会对你有所帮助。

答案 1 :(得分:0)

您可以按如下方式手动运行交易:

$this->db->trans_begin();

$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');

if ($this->db->trans_status() === FALSE)
{
    $this->db->trans_rollback();
}
else
{
    $this->db->trans_commit();
}