1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<?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 );
?>
|
相关文章
- 使用kindeditor获取不到富文本框中的值
- js中setTimeout和clearTimeout的使用
- 0045 Spring中使用DataSourceTransactionManager进行事务管理的xml配置
- Spring中使用DataSourceTransactionManager进行事务管理的xml配置
- spring boot 使用 mybatis 开启事务回滚 的总结
- 如何使用 TP中的公共函数 (定义在common/common.php中的函数)
- 使用sklearn中的fetch_mldata的错误情况以及可能可行的解决方法
- AutoMapper在asp.netcore中的使用
- Linux中man手册的使用
- 在Mac系统下使用自己安装的PHP