<?php //數據庫鏈接 $conn = mysql_connect('localhost', 'root', ''); mysql_select_db('test', $conn); mysql_query("SET NAMES GBK"); /* 支持事務的表必須是InnoDB類型 一段事務中只能出現一次: mysql_query('START TRANSACTION');//開始事務 mysql_query(' ROLLBACK ');//回滾事務 mysql_query('COMMIT');//提交事務 若是一段事務中出現屢次回滾事務,則在,提交事務時只將第一次回滾前至開始事務後對數據庫的全部操做取消,第一次回滾後至提交事務前全部對數據庫操做仍將有效,因此通常將回滾語句僅放在提交事務語句前 若是一段事務無提交語句,則從開始事務時如下的全部對數據庫操做雖執行(執行方法返回對錯),但對數據庫無影響,可是在執行下段開始事務語句時,前段事務自動提交 */ mysql_query('START TRANSACTION'); $isBad = 0; $ins_testTable1 = "INSERT INTO testtable1(NAME,age)VALUES('first',23)"; if(!mysql_query($ins_testTable1)){ $isBad =1; } //插入語句字段名有錯 $ins_testTable2 = "INSERT INTO testtable1(NAME,ages)VALUES('second','24')"; if(!mysql_query($ins_testTable2)){ $isBad =1; } if($isBad == 1){ echo $isBad; mysql_query('ROLLBACK '); } mysql_query('COMMIT'); mysql_close($conn); ?>