问:我在哪里出错了....尽管我在$ this-> db-> trans_start(TRUE)中设置了第一个参数,但我的查询没有回滚。作为TRUE,查询仅在我删除$ this-> db-> trans_complete()时才回滚;
这是我的代码
$ this-> db-> trans_start(TRUE); //查询将回滚$ this-> db-> query('UPDATE tastybite.items SET name =“ cheeeeese” WHERE iditems =“ qw”'); for($ i = 0; $ i <10; $ i ++){$ this-> db-> query('INSERT INTO tastybite.product(name,price)VALUES(“ product10”,“ 122”)');
}
$ this-> db-> trans_complete();
答:代码本身似乎是正确的。但是,对您的问题的一种可能解释是表正在使用的存储引擎的类型。
MySQL不支持MyISAM引擎的事务。因此,如果您的表使用的是MyISAM,则codeIgniter无法执行任何操作。检查表正在使用的存储引擎。如果是MyISAM,请将其更改为InnoDB。