您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

PHP使用Mysql事务实例解析

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 具体实例如下所示:

01 <?php 02 //数据库连接 03 $conn = mysql_connect('localhost', 'root', ''); 04 mysql_select_db('test', $conn); 05 mysql_query("SET NAMES GBK"); 06    07 /* 08 支持事务的表必须是InnoDB类型 09 一段事务中只能出现一次: 10 mysql_query('START TRANSACTION');//开始事务 11 mysql_query(' ROLLBACK ');//回滚事务 12 mysql_query('COMMIT');//提交事务 13    14 如果一段事务中出现多次回滚事务,则在,提交事务时只将第一次回滚前至开始事务后对数据库的所有操作取消,第一次回滚后至提交事务前所有对数据库操作仍将有效,所以一般将回滚语句仅放在提交事务语句前 15 如果一段事务无提交语句,则从开始事务时以下的所有对数据库操作虽执行(执行方法返回对错),但对数据库无影响,但是在执行下段开始事务语句时,前段事务自动提交 16 */ 17 mysql_query('START TRANSACTION'); 18 $isBad = 0; 19    20 $ins_testTable1 = "INSERT INTO testtable1(NAME,age)VALUES('first',23)"; 21 if(!mysql_query($ins_testTable1)){ 22   $isBad =1; 23 } 24 //插入语句字段名有错 25 $ins_testTable2 = "INSERT INTO testtable1(NAME,ages)VALUES('second','24')"; 26 if(!mysql_query($ins_testTable2)){ 27   $isBad =1; 28 } 29 if($isBad == 1){ 30   echo $isBad; 31   mysql_query('ROLLBACK '); 32 } 33 mysql_query('COMMIT'); 34 mysql_close($conn); 35 ?>