首頁 > 後端開發 > php教程 > 有熟悉事务或PDO的吗?老是回滚,删除不掉数据解决方法

有熟悉事务或PDO的吗?老是回滚,删除不掉数据解决方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 13:50:44
原創
1085 人瀏覽過

有熟悉事务或PDO的吗?老是回滚,删除不掉数据
数据库类型:sqlite 
没有提示错误,一行一行测试,的确没有错误,为什么老是回滚? 老是回滚,删除不掉数据 
大家推测原因是什么?
以下是说明性代码:

PHP code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

-->

  $king->db->connect(); //连接数据库 $link为数据库连接句柄。

 $king->db->link->beginTransaction();//回滚起始点

 if($rs1=$king->db->getRows_number('%s_newsContent',"newsID in($newsID)"))

 {

  if($rs2=$king->db->query("delete from %s_newsContent where newsID in($newsID)"))

  {

   $s.="删除新闻内容成功![".$rs2."/".$rs1."条]<br>";

  }

  else

  {

   lzj_message('删除新闻内容失败','javascript:history.go(-1)');   

  }

 }

 if($rs1=$king->db->getRows_number('%s_rss',"idValue in($newsID) and tableName='news' and idName='newsID'"))

 {

    

  if($rs2=$king->db->query("delete from %s_rss where tableName='news' and idName='newsID' and idValue in($newsID)"))

  {

     

   $s.="删除新闻RSS成功![".$rs2."/".$rs1."条]<br>";

  }

  else

  {

   lzj_message('删除新闻RSS失败','javascript:history.go(-1)');

  }

 }

 if($rs=$king->db->query("delete from %s_news where newsID in(".$newsID.")"))

 {

  lzj_message("删除成功![".$rs."条]<br>".$s,$pageUrl);  

 }

 else

 {

  lzj_message('删除新闻失败','javascript:history.go(-1)');

 

 $king->db->link->commit();//回滚结束点

登入後複製


------解决方案--------------------
感觉你这种写法有问题.
你可以事物开始时,设立一个标识如flag=true;

if( $flag ){
你的操作........
} else{
..............
$flag = false;
}
同上面一样继续下一个操作


最后
if( $flag ){
提交事物
}else{
 
回滚
}
相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板