我想知道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