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

[已解决] ci事务问题

[复制链接]
发表于 2009-8-26 16:52:57 | 显示全部楼层 |阅读模式
本帖最后由 visvoy 于 2009-8-26 17:01 编辑

不知道下面哪写错了,有些sql执行失败时,不能回滚
PHP复制代码
 
function updategroup(){
        $this->db->trans_begin();
            $data1=array('g_name'=>$this->input->post('groupname'));
            $this->db->where('g_id',$this->input->post('g_id'));
            $this->db->update('groups',$data1);
            $id=$this->input->post('g_id');
            $sql="delete from `menu_group` where `g_id`='$id'";
            $this->db->query($sql);
            $bmenu=array();
            $bmenu=$this->input->post('bigmenu');
            if(!empty($bmenu)){
                foreach($bmenu as $value){
                    $datab=array('g_id'=>$this->input->post('g_id'),'m_id'=>$value,'m_parent_id'=>0);
                    $query1=$this->db->insert('menu_group',$datab);
                }
            }
            $smenu=array();
            $smenu=$this->input->post('smenu');
            if(!empty($smenu)){
                foreach($smenu as $value){
                    $smenu1=explode(',',$value);
                    $smenuid=$smenu1[0];
                    $bmenuid=$smenu1[1];
                    $datas=array('g_id'=>$this->input->post('g_id'),'m_id'=>$smenuid,'m_parent_id'=>$bmenuid);
                    $query2=$this->db->insert('menu_group',$datas);
                }
            }
            if ($this->db->trans_status() === FALSE){
                   $this->db->trans_rollback();
                return false;
            }
            else{
                   $this->db->trans_commit();
                return true;
            }
    }
 
复制代码
 楼主| 发表于 2009-8-27 17:24:55 | 显示全部楼层
自己顶下 等hex大哥来
发表于 2009-8-27 18:46:19 | 显示全部楼层
-_- CI 事务我还没用过。。。。
等高人回答。。。
发表于 2009-8-27 22:53:13 | 显示全部楼层
在mysql中使用事务时,你的数据库表的类型必须是InnoDB或BDB,而不是更常用的MyISAM,否则无法实现
 楼主| 发表于 2009-8-28 08:46:11 | 显示全部楼层
在mysql中使用事务时,你的数据库表的类型必须是InnoDB或BDB,而不是更常用的MyISAM,否则无法实现
haohailuo 发表于 2009-8-27 22:53

恩 这个我知道 呵呵 不过还是不行
发表于 2009-8-28 14:39:47 | 显示全部楼层
如果是自己的服务器,事物绝对是提升效率的利器。如果是放在空间商哪,不知道对方是否支持了。
而且好像支持的不多。
返回值处好像有些问题。
发表于 2009-8-28 15:51:15 | 显示全部楼层
既然无解,此处就放弃食物吧,以前mysql没食物的时候,大家也编的很欢乐啊
 楼主| 发表于 2009-8-29 08:35:48 | 显示全部楼层
恩 是的 结贴了 谢谢各位

本版积分规则