什么是事務(wù)處理?
事務(wù)處理是指將一系列相關(guān)的數(shù)據(jù)庫操作視為一個(gè)單一的工作單元,并對(duì)該工作單元執(zhí)行許多處理步驟,直到所有步驟都成功完成或直到任何給定的步驟失敗為止。 如果其中任何一個(gè)步驟失敗,則所有其他已完成但未提交的操作都將回滾。
MySQL事務(wù)處理的實(shí)現(xiàn)方式
MySQL通過使用ACID屬性(原子性、一致性、隔離性、持久性)來管理事務(wù)。通過使用事務(wù)控制指令,開發(fā)人員可以控制在一個(gè)事務(wù)過程中執(zhí)行的SQL語句的提交和回滾。 這些指令包括BEGIN、COMMIT和ROLLBACK。
MySQL如何開啟事務(wù)處理?
要開啟MySQL事務(wù)處理功能,務(wù)必使用InnoDB作為存儲(chǔ)引擎。啟用InnoDB引擎時(shí),自動(dòng)啟動(dòng)MySQL事務(wù)處理功能。
要開始一個(gè)事務(wù),必須使用BEGIN命令引領(lǐng)其開始,例如: BEGIN;
要提交一個(gè)事務(wù),必須使用COMMIT命令,例如:COMMIT;
要回滾一個(gè)事務(wù),必須使用ROLLBACK命令,例如:ROLLBACK;
如何在PHP中使用MySQL事務(wù)處理?
在PHP中使用MySQL事務(wù)處理很容易。 我們可以使用mysqli或PDO數(shù)據(jù)訪問擴(kuò)展來執(zhí)行事務(wù)處理。 下面是一個(gè)使用mysqli的PHP代碼示例:
$mysqli = new mysqli("localhost", "username", "password", "database_name"); $mysqli->autocommit(false); $mysqli->begin_transaction(); $query1 = "INSERT INTO table_name (col1, col2, col3) VALUES ('val1', 'val2', 'val3')"; $mysqli->query($query1); $query2 = "UPDATE table_name SET col1='new_val1' WHERE col2='val2'"; $mysqli->query($query2); $mysqli->commit();
最后一行,將提交機(jī)制設(shè)置為TRUE,使所有更改有效。