php+mysql事务rollback&commit示例


mysql_query("BEGIN");//开始一个事务
mysql_query("SET AUTOCOMMIT=0"); //设置事务不自动commit
$insert="INSERT INTO userinfo VALUES ('aa12','aa','1','aaa')";
mysql_query($insert);
mysql_query("COMMIT");//非autocommit模式,必须手动执行COMMIT使操作生效
//mysql_query("SET AUTOCOMMIT=0");
$insert="INSERT INTO userinfo VALUES ('aa20','aa','1','aaa')";
$insert="INSERT INTO userinfo VALUES ('aa8','aa','1')";
//mysql_query("COMMIT");
if(mysql_num_rows==0)
mysql_query("ROLLBACK");//非autocommit模式,执行ROLLBACK使事务操作无效
else echo "ok";
//mysql_query("CLOSE");
mysql_query("SET AUTOCOMMIT=1");//恢复autocommit模式
$insert="INSERT INTO userinfo VALUES ('aa15','aa','1','aaa')";
mysql_query($insert);//不需要手动执行COMMIT就可以使事务操作生效

执行BEGIN之后,其作用同set autocommit=0,而且之后设置set autocommit=0或1时无效。所以,为使操作清楚,一般不使用BEGIN。



相关阅读:
把文件名当中含有特殊字符[.\]的文件删除的方法
Delphi与SQLServer存储过程编程详解
同一个表单 根据要求递交到不同页面的实现方法小结
清除垃圾的VBS文件 自动查找多个盘
Windows php+discuz环境搭建推荐教程(图文)
PHP url 加密解密函数代码
用DOS批处理实现建立文件夹的代码
给Function做的OOP扩展
通过注册表修改Win7下远程桌面端口3389的设置方法
SQL Server数据库开发10个问题
javascript完美随机广告代码
重置浏览器默认样式
MySQL SQL 语法参考
Linux系统下用Sopcast收看网络电视
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4