程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql之事務

mysql之事務

編輯:MySQL綜合教程

mysql之事務   事務處理 begin        開始一個事物   commit        事務確認 rollback    事務回滾   end        事務結束 innodb下可以實現事務   開始執行事務時如果在事務執行的過程中出現錯誤那麼事務會回滾之前執行的都會失效 在創建表時,就可以為table選擇InnoDB引擎了。如果是以前創建的表,可以使用  

alter table table_name engine=InnoDB
來改變數據表的引擎以支持事務。   例:
<?php

    $conn = mysql_connect('localhost','root','') or die ("數據連接錯誤!!!");
    mysql_select_db('shop',$conn);

    mysql_query("set names 'utf8'"); //使用utf8中文編碼;
    //開始一個事務

    mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");
    $sql = "INSERT INTO main (num) VALUES (123)";

    $sql2 = "INSERT INTO main (num1) VALUES (456)";//這條我故意寫錯
    //如果不用事務或者用的而不是innodb引擎則$sql會成功$sql2會失敗

    //用事務如果其中一條出現錯誤那麼兩條數據都不會執行成功
    $res = mysql_query($sql);

    $res1 = mysql_query($sql2);  
    if($res && $res1){

    mysql_query("COMMIT");
    echo '提交成功。';

    }else{
    mysql_query("ROLLBACK");

    echo '數據回滾。';
    }

    mysql_query("END"); 
?>

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved