MYSQL--交易處理

來源:互聯網
上載者:User

標籤:blog   使用   os   io   for   cti   ar   div   

1、用begin,rollback,commit來實現

  begin 開始一個事務

  rollback 交易回復

  commit  事務確認

2、直接用set來改變mysql的自動認可模式

       MYSQL預設是自動認可的,也就是你提交一個QUERY,它就直接執行!我們可以通過

       set autocommit=0   禁止自動認可

        set autocommit=1 開啟自動認可

   來實現事務的處理。

但注意當你用 set autocommit=0 的時候,你以後所有的SQL都將做為交易處理,

直到你用commit確認或rollback結束,注意當你結束這個事務的同時也開啟了個新的事務!按第一種方法只將當前的作為一個事務!

個人推薦使用第一種方法!


[PHP]
function Tran( $sql ) {
         $judge = 1;
         mysql_query(‘begin‘);
         foreach ($sql as $v) {
                 if ( !mysql_query($v) ) {
                         $judge = 0;
                 }
         }
         if ($judge == 0) {
                 mysql_query(‘rollback‘);
                 return false;
         }
         elseif ($judge == 1) {
                 mysql_query(‘commit‘);
                 return true;
         }
}
[/PHP]

************************************************

<?php
$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//設定為不自動認可,因為MYSQL預設立即執行
mysql_query("BEGIN");//開始事務定義
if(!mysql_query("insert into trans (id) values(‘2‘)"))
{
mysql_query("ROOLBACK");//判斷當執行失敗時復原
}
if(!mysql_query("insert into trans (id) values(‘4‘)"))
{
mysql_query("ROOLBACK");//判斷執行失敗復原
}
mysql_query("COMMIT");//執行事務
mysql_close($handler);
?>

 

  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.