MYSQL事務處理讓所有sql語句執行成功后才去處理,如果有一條沒有成功或者報錯就會回滾事務,防止敏感操作處理失敗。MYSQL中只有INNODB和BDB類型的數據表才能支持事務處理!其它類型是不支持的!
$mysqli->autocommit(FALSE); //關閉自動提交功能 $sql = "UPDATE users SET money = money-300 WHERE username = 'Mike'"; $res1 = $mysqli->query($sql); $res1_rows = $msyqli->affected_rows; $sql2 = "UPDATE users SET money = money+300 WHERE username = 'Tom'"; $res2 = $mysqli->query($sql2); $res2_rows = $mysqli->affected_rows; if($res1 && $res1_rows>0 && $res2 && $res2_rows>0){ $msyqli->commit(); //提交事務 echo '執行成功'; $mysqli->autocommit(TRUE); //開啟自動提交功能 else{ //事務回滾 $mysqli->rollback(); echo '執行失敗; }