我正在使用codeigniter而我正在使用像
这样的代码$this->db->trans_start();
some 5 mysql inserts and
$this->db->trans_complete();
我在第5次查询时收到类似DB Transaction Failure
的错误,即一些重复输入错误。但仍然我的前4个查询都被执行了。它不应该回滚吗?
答案 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();
}