具體實(shí)例如下所示:
01<?php
02//數(shù)據(jù)庫(kù)連接
03$conn = mysql_connect('localhost', 'root', '');
04mysql_select_db('test', $conn);
05mysql_query("SET NAMES GBK");
06
07/*
08支持事務(wù)的表必須是InnoDB類型
09一段事務(wù)中只能出現(xiàn)一次:
10mysql_query('START TRANSACTION');//開(kāi)始事務(wù)
11mysql_query(' ROLLBACK ');//回滾事務(wù)
12mysql_query('COMMIT');//提交事務(wù)
13
14如果一段事務(wù)中出現(xiàn)多次回滾事務(wù),則在,提交事務(wù)時(shí)只將第一次回滾前至開(kāi)始事務(wù)后對(duì)數(shù)據(jù)庫(kù)的所有操作取消,第一次回滾后至提交事務(wù)前所有對(duì)數(shù)據(jù)庫(kù)操作仍將有效,所以一般將回滾語(yǔ)句僅放在提交事務(wù)語(yǔ)句前
15如果一段事務(wù)無(wú)提交語(yǔ)句,則從開(kāi)始事務(wù)時(shí)以下的所有對(duì)數(shù)據(jù)庫(kù)操作雖執(zhí)行(執(zhí)行方法返回對(duì)錯(cuò)),但對(duì)數(shù)據(jù)庫(kù)無(wú)影響,但是在執(zhí)行下段開(kāi)始事務(wù)語(yǔ)句時(shí),前段事務(wù)自動(dòng)提交
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//插入語(yǔ)句字段名有錯(cuò)
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?>
更多信息請(qǐng)查看IT技術(shù)專欄