PHP與MYSQL事務處理

2021-09-06 11:40:10 字數 1383 閱讀 8776

mysql的事務處理主要有兩種方法。

1、用begin,rollback,commit來實現

begin 開始乙個事務

rollback 事務回滾

commit 事務確認

2、直接用set來改變mysql的自動提交模式

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

mysql_select_db('test',$conn);

mysql_query("set names 'gbk'"); //使用gbk中文編碼;

//開始乙個事務

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

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

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

$res = mysql_query($sql);

$res1 = mysql_query($sql2);

if($res && $res1)else

mysql_query("end");

/**************** transaction--2 *******************/

/*方法二*/

mysql_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 = mysql_query($sql);

$res1 = mysql_query($sql2);

if($res && $res1)else

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

/******************對於不支援事務的myisam引擎資料庫可以使用表鎖定的方法:********************/

PHP與MYSQL事務處理

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

PHP 事務處理

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

PHP操作MySQL事務處理

php操作mysql事務處理 用begin,rollback,commit來實現 方法二 conn mysqli connect localhost root root test or die 資料連線錯誤 mysqli query set names utf8mb4 使用gbk中文編碼 開始乙個事...