我想知道mysqli-> rollback是否會回滾所有在回滾之前已經提交的查詢。將mysqli-> rollback(),回滾以前提交的每個查詢?
例如,在下面的代碼中,第一個查詢將被提交,但第二個查詢將因「拼寫錯誤的用戶名」而失敗。這是否意味着回滾之前的查詢將執行或不執行?
$mysqli->autocommit(FALSE);
$query = "INSERT INTO users (username, password) VALUES ('user123', '1apple')";
$query2 = "INSERT INTO users (**usernam**, password) VALUES ('user987', '2apple')";
if($resrouce = $mysqli->query($query)){
$mysqli->commit();
if($resource2 = $mysqli->query($query2)){
$mysqli->commit();
}else{
$mysqli->rollback();
}
}else{
$mysqli->rollback();
}
回滾只回滾尚未提交的語句... – eggyal