PHP事务的如何写?
程序员文章站
2024-02-13 08:34:04
...
PHP 的事务怎么写? 我现在是一条update,一条insert
代码如下,错误是,值类型发生了错误,事务没起作用.
代码如下,错误是,值类型发生了错误,事务没起作用.
$db = new DbManager(); $conn = $db->getConnection(); $conn->set_charset("utf8"); if(mysqli_connect_errno()) { echo 'error connect database! please content manager!'; exit; } //echo connection_status(); $tbNums = explode(',',$tbNum); $conn->autocommit(FALSE); $flag = true; $a=0; foreach($tbNums as $key => $value) { $updateBalance = "UPDATE T_SMS_TBNUM SET STATUS = 2 WHERE ID = ?"; $insertRelate = "INSERT INTO T_SMS_TBNUMRELATE (TBID,OWNCLIENTID,REALFEE,CREATETIME) VALUES(?,?,?,?)"; $stmtUpdateClient = $conn->prepare($updateBalance); $stmtUpdateClient->bind_param('i',$value); $ss = $stmtUpdateClient->execute(); $stmt = $conn->prepare($insertRelate); $foura = 4; $a++; if($a!=0){ $value = 's'; } $stmt->bind_param('iids',$value,$clientId,$foura,date('Y-m-d H:i:s')); $boooo = $stmt->execute(); echo $ss.'+'.$boooo; if($stmtUpdateClient->affected_rows affected_rows affected_rows.'|'.$stmt->affected_rows; $flag = false; break; } } if(!$flag) { $conn ->rollback(); $conn -> autocommit(TRUE); $conn->close(); return 'paylog false!'; }else { $conn->commit(); $conn -> autocommit(TRUE); $conn->close(); return '1'; }
回复讨论(解决方案)
if( $stmt->affected_rows affected_rows rollback(); $conn -> autocommit(TRUE); $conn->close(); return 'unknow_error'; }else { $conn->commit(); $conn -> autocommit(TRUE); $conn->close(); return '1'; }