<?php$mysqli = new mysqli("127.0.0.1","root","111111","test");
if ($mysqli->connect_errno)
//預設auto-commit 是開啟的,可直接提交sql語句
$b1 = $mysqli->query("insert into test (id,name) values (0,'000')");
//若要執行事務,先關閉auto-commit
//關閉 auto-commit
$mysqli->autocommit(false);
$res1 = $mysqli->query("insert into test (id,n1ame) values (1,'111')");
$b2 = $mysqli->query("insert into test (id,name) values (2,'222')");
//有一條失敗則回滾,全部成功則提交
if(!$res1 || !$b2) else
//若想再次自動提交非事務語句,要開啟auto-commit
$mysqli->autocommit(true);
$b3 = $mysqli->query("insert into test (id,name) values (3,'333')");
//關閉連線
$mysqli->close();
?>
事務回滾與手動回滾
一般我們在開發時,在方法或者類上加了 transactional事務註解,然後會用 try catch 將可能會出問題的 塊包起來,在catch裡面處理捕獲的異常,但是,如果在catch裡面沒有把異常丟擲去,此時事務是不會自動回滾的 比如這種情況 這裡既沒有丟擲異常,也沒有手動回滾,在插入流水表之後...
事務回滾反思
自己以後就用這個部落格了,部落格的更改給大家帶來了很多不便,以前的部落格 停用,因為對於專業的人來說應該用專業的東西,用龐大的技術去顯示it技術的魅力,顯示我們是一支龐大的力量。今天技術總結,看到師姐寫得事件回滾,自己就研究去了,看到有個for迴圈自己感覺這是正確格式麼,自己很迷信的相信然後就以這樣...
PHP PDO事務回滾
trycatch pdoexception e 事務處理 try where id 1 affected rows pdo exec sql if affected rows throw new pdoexception 張三轉出失敗 那個錯誤丟擲異常 sql update zhanghao set...