mysql事務處理用法與例項詳解

2021-07-24 04:55:33 字數 2447 閱讀 9031

mysql事物處理例項

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

1.用begin,rollback,commit來實現

begin開始乙個事務

rollback事務回滾

commit 事務確認

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

mysql預設是自動提交的,也就是你提交乙個query,就直接執行!可以通過

set autocommit = 0 禁止自動提交

set autocommit = 1 開啟自動提交

php**實現事務的處理可以通過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"

?>

列二

<?php

require('connectdb.php'); //建立資料庫連線

mssql_query("begin transaction deps02_del"); //開始事務

$delete_dep_sql="delete from tbldepartment where deptid=''";

// echo $delete_dep_sql."

";mssql_query($delete_dep_sql); //運算元據庫

// var_dump($del_result);

$delete_result = mssql_query("select @@rowcount as id");

$delete_info = mssql_fetch_array($delete_result);

$delete_rows = $delete_info[0];

// var_dump($delete_rows);

mssql_free_result($delete_result);

echo "";mssql_close();

?>

例3

mysql的事務處理在處理實際問題中有著廣泛且重要的應用,最常見的應用如銀行轉賬業務、電子商務支付業務等等。但是,值得注意的是,mysql的事務處理功能在mysiam儲存引擎中是不支援的,在innodb儲存引擎中是支援的。現在上傳一段**,作為引導認識mysql事務處理的開始,簡單的例項,但融匯思想,相信會有很大的幫助。

<?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);

?>

參考連線:

mysql事務處理 例項

事務處理機制在程式開發過程中有著非常重要的作用,它可以使整個系統更加安全,例如在銀行處理轉賬業務時,如果a賬戶中的金額剛被發出,而b賬戶還沒來得及接收就發生停電,這會給銀行和個人帶來很大的經濟損失。採用事務處理機制,一旦在轉賬過程中發生意外,則程式將回滾,不做任何處理。mysql的事務處理主要有兩種...

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 ...