1. 程式人生 > 其它 >MYSQL 事務處理主要有兩種方法

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