MYSQL 事務處理主要有兩種方法
1、用 BEGIN, ROLLBACK, COMMIT來實現
BEGIN 開始一個事務
ROLLBACK 事務回滾
COMMIT 事務確認
mysql> select * from runoob_transaction_test;
Empty set (0.01 sec)
mysql> begin; # 開始事務
Query OK, 0 rows affected (0.00 sec)
mysql> insert into runoob_transaction_test value(5);
Query OK, 1 rows affected (0.01 sec)
mysql> insert into runoob_transaction_test value(6);
Query OK, 1 rows affected (0.00 sec)
mysql> commit; # 提交事務
Query OK, 0 rows affected (0.01 sec)
2、直接用 SET 來改變 MySQL 的自動提交模式:
SET AUTOCOMMIT=0 禁止自動提交
SET AUTOCOMMIT=1 開啟自動提交
// 設定編碼,防止中文亂碼
mysqli_query($conn, "set names utf8");
mysqli_select_db( $conn, 'RUNOOB' );
mysqli_query($conn, "SET AUTOCOMMIT=0"); // 設定為不自動提交,因為MYSQL預設立即執行
mysqli_begin_transaction($conn); // 開始事務定義
if(!mysqli_query($conn, "insert into runoob_transaction_test (id) values(8)"))
{
mysqli_query($conn, "ROLLBACK"); // 判斷當執行失敗時回滾
}
if(!mysqli_query($conn, "insert into runoob_transaction_test (id) values(9)"))
{
mysqli_query($conn, "ROLLBACK"); // 判斷執行失敗時回滾
}
mysqli_commit($conn); //執行事務
mysqli_close($conn);
文章來自 www.dgkunfu.com