php交易刪除的操作方法:1、利用「autocommit(false)」方法,關閉資料庫自動提交;2、當操作語句全部成功後,透過「commit()」提交到資料庫,如果操作失敗,則用「rollback()」方法回退刪除即可。
本教學操作環境:Windows7系統、PHP8.1版、Dell G3電腦。
php交易刪除怎麼實作?
php 事務處理transaction
MySQL 事務主要用於處理操作量大,複雜度高的資料。比如說,在人員管理系統中,你刪除一個人員,你即需要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些資料庫操作語句就構成一個事務!
在MySQL中只有使用了Innodb資料庫引擎的資料庫或表才支援事務
交易處理可以用來維護資料庫的完整性,保證成批的SQL語句要麼全部執行,要麼全部不執行
交易用來管理insert,update,delete語句
#一般來說,交易是必須滿足4個條件(ACID): Atomicity(原子性)、Consistency(穩定性)、Isolation(隔離性)、Durability(持久)
1、事務的原子性:一組事務,要麼成功;要麼撤回。
2、穩定性 : 有非法資料(外鍵約束之類),交易撤回。
3、隔離性:交易獨立運作。一個事務處理後的結果,影響了其他事務,那麼其他事務會撤回。事務的100%隔離,需要犧牲速度。
4、持久性:一個交易一旦被提交,它對資料庫中資料的改變就是永久的,接下來即使資料庫發生故障也不應該對其有任何影響。
執行下面的程式
$mysqli = new mysqli('localhost','root','mayi1991','mysqldemo'); if($mysqli->connect_error){ die('数据库连接错误'.$mysqli->connect_error); } $sql1 = "update account set balance = balance - 2 where id = 1"; //这里故意写错指令中的balance1属性 $sql2 = "update account set balance1 = balance + 2 where id = 2"; $result1 = $mysqli->query($sql1); $result2 = $mysqli->query($sql2); if(!$result1 || !$result2){ die('操作错误'.$mysqli->error); }else{ die('操作成功'); } $mysqli->close();
雖然上面的程式碼有報錯,但是在資料庫中,id=1的balance已經改變;這樣就會出現問題;
我們想要的同時改變,如果有一個出錯,就不改變;這時候,我們就需要「事務控制」來保證「一致性」;
我們需要用到的方法autocommit() commit();看下面的程式碼
$mysqli = new mysqli('localhost','root','mayi1991','mysqldemo'); if($mysqli->connect_error){ die('数据库连接错误'.$mysqli->connect_error); } //关闭数据库自动提交 $mysqli->autocommit(false); $sql1 = "update account set balance = balance - 2 where id = 1"; //这里故意写错属性balance1 $sql2 = "update account set balance1 = balance + 2 where id = 2"; $result1 = $mysqli->query($sql1); $result2 = $mysqli->query($sql2); if(!$result1 || !$result2){ die('操作错误'.$mysqli->error); $mysqli->rollback(); //事务回退 }else{ //操作全部正确后再提交 $mysqli->commit(); } $mysqli->close();
先利用autocommit(false)方法,關閉資料庫自動提交,然後當運算語句全部成功後,commit()提交到資料庫;
如果操作失敗,我們用rollback()方法回退。
推薦學習:《PHP影片教學》
以上是php事務刪除怎麼操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!