PHP トランザクションの作成方法?
現在、更新と挿入が 1 つありますが、PHP トランザクションの作成方法は?
コードは次のとおりです。エラーは、値の型でエラーが発生し、トランザクションが機能しなかったということです。
$db = new DbManager();<br /> $conn = $db->getConnection();<br /> $conn->set_charset("utf8");<br /> <br /> if(mysqli_connect_errno())<br /> {<br /> echo 'error connect database! please content manager!';<br /> exit;<br /> }<br /> //echo connection_status();<br /> $tbNums = explode(',',$tbNum);<br /> <br /> $conn->autocommit(FALSE);<br /> $flag = true;<br /> $a=0;<br /> foreach($tbNums as $key => $value)<br /> {<br /> $updateBalance = "UPDATE T_SMS_TBNUM SET STATUS = 2 WHERE ID = ?";<br /> $insertRelate = "INSERT INTO T_SMS_TBNUMRELATE (TBID,OWNCLIENTID,REALFEE,CREATETIME) VALUES(?,?,?,?)";<br /> <br /> <br /> $stmtUpdateClient = $conn->prepare($updateBalance);<br /> $stmtUpdateClient->bind_param('i',$value);<br /> $ss = $stmtUpdateClient->execute();<br /> <br /> $stmt = $conn->prepare($insertRelate);<br /> $foura = 4;<br /> $a++;<br /> if($a!=0){<br /> $value = 's';<br /> }<br /> $stmt->bind_param('iids',$value,$clientId,$foura,date('Y-m-d H:i:s'));<br /> $boooo = $stmt->execute();<br /> echo $ss.'+'.$boooo;<br /> if($stmtUpdateClient->affected_rows <= 0 || $stmt->affected_rows <= 0)<br /> {<br /> echo $stmtUpdateClient->affected_rows.'|'.$stmt->affected_rows;<br /> $flag = false;<br /> break;<br /> }<br /> }<br /> if(!$flag)<br /> {<br /> $conn ->rollback();<br /> $conn -> autocommit(TRUE);<br /> $conn->close();<br /> return 'paylog false!';<br /> }else<br /> {<br /> $conn->commit();<br /> $conn -> autocommit(TRUE);<br /> $conn->close();<br /> return '1';<br /> }