php中對MYSQL操作之事務控制,回滾

<?php
//事務控制,回滾

//創建一個mysqli對象
$mysqli = new MySQLi("主機名","mysql用戶名","密碼","數據庫名");

//判斷是否鏈接成功
if($mysqli->connect_error){
	die($mysqli->connect_error);
}
//由於在事務提交中系統默認提交,故這裏設置爲FALSE先不提交
$mysqli->autocommit(false);

//其實這裏系統已經相當在這裏做個保存點,記錄此時所有狀態,回滾是回滾到這裏
//$mysqli->savepoint a;

//寫出對數據庫的操作語句
$sql1 = "insert into 表名 (字段名) values (對應字段的值)";
$sql2 = "update 表名 set 字段名=值 where 條件";
$sql3 = "delete from 表名 where 條件";

//執行sql語句
$res1 = $mysqli->query($sql1) or die ($mysqli->error);
$res2 = $mysqli->query($sql2) or die ($mysqli->error);
$res3 = $mysqli->query($sql3) or die ($mysqli->error);

//判斷是否都執行成功
if(!$res1||!$res2||!$res3){
	//只要有一條失敗便回滾,都不執行,若設置滾回點,如a,加個參數a變滾回到a處
	$mysqli->rollback();
}else{
	//一旦提交無法回滾,成功則提交
	$mysqli->commit();
}

//關閉資源
$musqli->close();
?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章