mysql 事務處理

2022-08-29 02:57:09 字數 1461 閱讀 9409

start transaction;  //事務處理開始

update a set money =money-2 where id=1;

update a set money=money+2 where id=2;

commit;//事務處理結束

start transaction;//事務處理開始

update a set money =money-2 where id=1;

update a set money=money+2 where id=2;

rollback;//事務處理回滾

alter table a change money money int unsigned;//改變表money為無負號

例項1<?php

$conn=mysql_connect('localhost','root','yourpassword')or die(mysql_error());

mysql_select_db('transaction',$conn);

mysql_query('set names utf8');

//建立事務

mysql_query('start transaction') or die(mysql_error());

$sqla="update a set account=account-1";

if(!mysql_query($sqla))

$sqlb="update b set account=account+1";

if(!mysql_query($sqlb))

mysql_query('commit')or die(mysql_error());//執行事務

mysql_close($conn);

?>

例項2php**實現事務的處理可以通過php預定義類mysqli的以下方法實現。

autocommit(boolean):該方法用於限定查詢結果是否自動提交,如果該方法的引數為true則自動提交,如果引數為false則關閉自動提交。mysql資料庫預設為自動提交。

rollback():利用mysqli類中的該方法可以實現事務的回滾。

commit():利用該方法可以實現提交所有查詢。

**如下

複製**

<?php

include_once("conn.php");

$id=$_get[id];

$conn->autocommit(false);

if(!$conn->query("delete from tb_sco where id='".$id."'"))

if(!$conn->query("delete from tb_stu where id='".$id."'"))

$conn->commit();

$conn->autocommit(true);

echo "ok"

?>

MySQL事務處理

start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...

mysql事務處理

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

mysql事務處理

事務都應該具備acid特徵。所謂acid是atomic 原子性 consistent 一致性 isolated 隔離性 durable 持續性 四個詞的首字母所寫,下面以 銀行轉帳 為例來分別說明一下它們的含義 1 原子性 組成事務處理的語句形成了乙個邏輯單元,不能只執行其中的一部分。換句話說,事務...