用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3518|回复: 5
收起左侧

[已解决] 插入引起的回滚异常

[复制链接]
发表于 2009-12-15 13:47:12 | 显示全部楼层 |阅读模式
我做了一个事务但是插入的时候会有回滚的异常发生,请大家帮帮忙,看下!多谢!代码如下:
                        $this->db->trans_begin ();

$this->db->query($this->genUserSql($nickname,$password,$username));

$uid=$this->db->insert_id();

$this->db->query($this->genClientSql($uid,$imei,$imsi,$otherInfo));

$this->db->query($this->genSessionSql($uid));
                        if (FALSE === $this->db->trans_status () ) {

$this->db->trans_rollback ();

$MTReturn["flag"]="false";

                        $MTReturn["msg"]=$this->db->errMsg[1];

        return $MTReturn;

}

当我的插入出错时,只能回滚插入后面的两条语句,为什么?
 楼主| 发表于 2009-12-15 13:51:18 | 显示全部楼层
顺便说下,本人新手,请大家多多指教!
谢谢!
发表于 2009-12-15 16:31:37 | 显示全部楼层
在早前用CI 1.6.9版本中,$this->db->insert_id()函数有时会出现问题。
我宁愿相信是自己编码的原因,但问题一直没有解决。
看楼上用了这个函数,提供一个思路或可能。
 楼主| 发表于 2009-12-15 16:37:42 | 显示全部楼层
十分感谢,我已经找到问题了,但是还没有找的问题的解决办法,$uid=$this->db->insert_id()这条语句不能用在插入前,不然会有问题,再次谢谢你的帮助!
发表于 2009-12-15 19:01:56 | 显示全部楼层
$this->db->insert_id();
这怎么能用在插入前呢?没插入怎么取 insert_id 呀?呵呵
发表于 2010-4-2 16:39:01 | 显示全部楼层
我也是新手

本版积分规则