如何利用Codeigniter框架对事务进行更新

  介绍

如何利用Codeigniter框架对事务进行更新?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

由于ci事务判断出错回滚的条件是语句是否执行成功,而更新操作时,就算影响的条数为0,sql语句执行的结果过仍然为1,因为它执行成功了,只是影响的条数为0。

下面介绍解决这个问题的方法:

对于一次要执行许多的语句的事务

只需在更新操作下根据影响条数是否为0来决定是否会滚即可,下面假设第二条语句为更新操作。

代码如下:

//采用,Codeigniter 事务的手动模式   ,,,这个→美元db→trans_strict(假);   ,,,这个→美元db→trans_begin ();   ,,,,,,,   ,,,这个→美元db→查询(& # 39;SELECT ……& # 39;);//SELECT 操作无需特殊处理   ,,,这个→美元db→查询(& # 39;INSERT ……& # 39;);//INSERT 出错会有,Codeigniter 自动处理   ,,,,,,,   ,,,这个→美元db→查询(& # 39;UPDATE ……& # 39;);   ,,,if  (! $ this→db→affacted_rows()),{//上面的,UPDATE 失败则回滚   ,,,,,,,这个→美元db→trans_rollback ();   ,,,,,,,//@todo 异常处理部分   ,,,,,,,退出();//需要终止或跳出,以免下面的,SQL 代码继续执行!   ,,,}   ,,,,,,,   ,,,这个→美元db→查询(& # 39;DELETE ……& # 39;);   ,,,if  (! $ this→db→affacted_rows()),{//上面的,DELETE 失败则回滚   ,,,,,,,这个→美元db→trans_rollback ();   ,,,,,,,//@todo 异常处理部分   ,,,,,,,退出();//需要终止或跳出,以免下面的,SQL 代码继续执行!   ,,,}   ,,,,,,,   ,,,这个→美元db→查询(& # 39;SELECT ……& # 39;);//SELECT 操作无需特殊处理   ,,,这个→美元db→查询(& # 39;INSERT ……& # 39;);//INSERT 出错会有,Codeigniter 自动处理   ,,,,,,,   ,,,if  ($ this→db→trans_status(),===,真的),{   ,,,,,,,这个→美元db→trans_commit ();   ,,,},{else    ,,,,,,,这个→美元db→trans_rollback ();   ,,,,,,,//@todo 异常处理部分   ,,,}

如果一次执行的语句不是很多,可以在最后做一下判断来决定回滚

若语句中没有更新操作,用自动事务就可以。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

如何利用Codeigniter框架对事务进行更新