PConline 发表于 2008-5-2 13:18:44

CI数据库事务的问题。。。

在CI中做了这样一个测试,如下:

function insert_admin()
    {
      $this->db->trans_start();
      $this->db->query("insert into `e_admin`(AdminName) values('aaa')");
      $this->db->query("insert into `e_admin`(AdminNam) values('')");
      $this->db->trans_complete();
      if ($this->db->trans_status() === FALSE)
      {
            $this->db->trans_rollback();
      }
      else
      {
            $this->db->trans_commit();
      }
    }
e_admin数据表类型是innodb,AdminName是一个字段。
很明显第二个insert出错,但第一条插入还是插入了数据库。。。为什么啊

kkito 发表于 2008-5-4 21:25:14

transaction不是
开始trans
。。
blahblah。。
。。。
rollback或者commit

trans_complete??
有这么一个步骤吗?
我就土鳖的问一下

PConline 发表于 2008-5-4 22:44:20

上面哪个是手册上的例子啊

yeyunan 发表于 2008-5-5 00:33:09

$this->db->trans_start();
      $this->db->query("insert into `e_admin`(AdminName) values('aaa')");
       $insert_id1 = $this->db->affected_row();
       if ($insert_id1<=0)
      {
            $this->db->trans_rollback();
         show_error('插入数据库失败');
      }

      $this->db->query("insert into `e_admin`(AdminNam) values('')");
       $insert_id2= $this->db->affected_row();
      if ($insert_id2<=0)
      {
            $this->db->trans_rollback();
         show_error('插入数据库失败');
      }
            $this->db->trans_commit();
页: [1]
查看完整版本: CI数据库事务的问题。。。