PHP操作MySQL事務處理

2021-09-29 18:57:18 字數 1194 閱讀 3929

php操作mysql事務處理

/*************** 用begin,rollback,commit來實現 ***************/

/*方法二*/

$conn = mysqli_connect('localhost','root','root','test') or die ("資料連線錯誤!!!");

mysqli_query("set names utf8mb4"); //使用gbk中文編碼;

//開始乙個事務

mysqli_query("begin"); //或者mysqli_query("start transaction");

$sql = "insert into `user` (`id`, `username`, `***`) values (null, 'test1', '0')";

$sql2 = "insert into `user` (`did`, `username`, `***`) values (null, 'test1', '0')";//這條我故意寫錯

$res = mysqli_query($sql);

$res1 = mysqli_query($sql2);

if($res && $res1)else

mysqli_query("end");

/**************** 直接用set來改變mysql的自動提交模式 *******************/

/*方法二*/

mysqli_query("set autocommit=0"); //設定mysql不自動提交,需自行用commit語句提交

$sql = "insert into `user` (`id`, `username`, `***`) values (null, 'test1', '0')";

$sql2 = "insert into `user` (`did`, `username`, `***`) values (null, 'test1', '0')";//這條我故意寫錯

$res = mysqli_query($sql);

$res1 = mysqli_query($sql2);

if($res && $res1)else

mysqli_query("end"); //事務處理完時別忘記mysql_query("set autocommit=1");自動提交

PHP 事務處理

在對資料庫會進行多次操作的時候會使用到事務 transaction 其中的底層邏輯如下 1 開啟事務 begin 2 取消資料庫自動寫入 set autocommit 0 3 sql1賦值 第一句所要執行的內容 4 sql2賦值 等等 5 執行mysql query sql1 sqln 6 判斷sq...

PHP與MYSQL事務處理

mysql的事務處理主要有兩種方法。1 用begin,rollback,commit來實現 begin 開始乙個事務 rollback 事務回滾 commit 事務確認 2 直接用set來改變mysql的自動提交模式 mysql預設是自動提交的,也就是你提交乙個query,它就直接執行!我們可以通過...

PHP與MYSQL事務處理

mysql的事務處理主要有兩種方法。1 用begin,rollback,commit來實現 begin 開始乙個事務 rollback 事務回滾 commit 事務確認 2 直接用set來改變mysql的自動提交模式 conn mysql connect localhost root root or...