具體實例如下所示:
01<?php
02//數(shù)據(jù)庫連接
03$conn = mysql_connect('localhost', 'root', '');
04mysql_select_db('test', $conn);
05mysql_query("SET NAMES GBK");
06
07/*
08支持事務的表必須是InnoDB類型
09一段事務中只能出現(xiàn)一次:
10mysql_query('START TRANSACTION');//開始事務
11mysql_query(' ROLLBACK ');//回滾事務
12mysql_query('COMMIT');//提交事務
13
14如果一段事務中出現(xiàn)多次回滾事務,則在,提交事務時只將第一次回滾前至開始事務后對數(shù)據(jù)庫的所有操作取消,第一次回滾后至提交事務前所有對數(shù)據(jù)庫操作仍將有效,所以一般將回滾語句僅放在提交事務語句前
15如果一段事務無提交語句,則從開始事務時以下的所有對數(shù)據(jù)庫操作雖執(zhí)行(執(zhí)行方法返回對錯),但對數(shù)據(jù)庫無影響,但是在執(zhí)行下段開始事務語句時,前段事務自動提交
16*/
17mysql_query('START TRANSACTION');
18$isBad = 0;
19
20$ins_testTable1 = "INSERT INTO testtable1(NAME,age)VALUES('first',23)";
21if(!mysql_query($ins_testTable1)){
22 $isBad =1;
23}
24//插入語句字段名有錯
25$ins_testTable2 = "INSERT INTO testtable1(NAME,ages)VALUES('second','24')";
26if(!mysql_query($ins_testTable2)){
27 $isBad =1;
28}
29if($isBad == 1){
30 echo $isBad;
31 mysql_query('ROLLBACK ');
32}
33mysql_query('COMMIT');
34mysql_close($conn);
35?>
更多信息請查看IT技術專欄