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

[HELP] CI 的事务操作请教

[复制链接]
发表于 2012-3-2 16:53:05 | 显示全部楼层 |阅读模式
$this->db->trans_start();
$this->db->query('一条SQL查询...');
$this->db->query('另一条查询...');
$this->db->query('还有一条查询...');
$this->db->trans_complete();


文档中是这样写的
我现在的程序中遇到实际问题是我操作数据操的时候 不是写的SQL 语句。就用CI自带的方法

$salon_id = $this->Md_salon_Model->insert_salon($data);
$udata['salon_id'] = $salon_id;           $this->Md_member_Model->update_member_info($udata,$this->session->userdata('uid'));

类似上面的代码。我建了两个MODE    Md_member_Model 和 d_salon_Model 里面有操作数据方法

这样的情况怎么用事务
发表于 2012-3-2 17:30:30 | 显示全部楼层
不管你怎么写代码,只要确认把查询部分放在中间,道理是一样的啊
 楼主| 发表于 2012-3-5 14:31:56 | 显示全部楼层
我现在是这这样的
我写了两个MODEL
我调用两个MODEL中的方法
里面都是关于插入信息的
我又在在HELPS中加入了一个共同文件
在这个公共文件
我$ci = &get_instance();          
然后

$ci = &get_instance();       
        $ci->load->model('Md_twitter_Model');
        $ci->load->model('Md_twitter_picture_Model');
       
        $ci->db->trans_start();
        $twitter_id = $ci->Md_twitter_Model->insert_twitter($twitter_array);
       
        $pic_array['pic_url']  = $twitter_array['pic_url'];
        $pic_array['img_path'] = $twitter_array['pic_url'];
        $pic_array['tid']      = $twitter_id;
        $pic_array['filesize'] = $imgarray['file_size'];
        $pic_array['width']    = $imgarray['image_width'];
        $pic_array['height']   = $imgarray['image_height'];
        $pic_array['content_type']  = $imgarray['image1_type'];
        $twitter_id = $ci->Md_twitter_picture_Model->insert_twitter_picture($pic_array);
        $ci->db->trans_complete();
   
        if ($ci->db->trans_status() === FALSE)
        {
           return 0;
        } else{
                return $twitter_id;
        }



可是这样操作是不对的
失败

本版积分规则