php+mysql事务rollback&commit示例

yipeiwu_com5年前Mysql基础
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。

相关文章

MySQL GBK→UTF-8编码转换

前言: 第一次写教程,其实算不得教程,只是想总结个转换的手记。如果中间有错误,或者办法不够理想,大家回贴研究下。 另外,我也希望我们论坛不仅仅作为闲聊的地方,也希望大家能活跃我们论坛的学...

php中批量删除Mysql中相同前缀的数据表的代码

方法一: 复制代码 代码如下: <?php mysql_connect('','',''); mysql_select_db(''); $rs=mysql_query('show...

检查用户名是否已在mysql中存在的php写法

在写注册系统时,如果要检查用户名是否存在,php可以这样写: 复制代码 代码如下: $username=$_REQUEST['username']; $password=$_REQUES...

用mysql_fetch_array()获取当前行数据的方法详解

同mysql_fetch_row()类似,函数mysql_fetch_array()也是获取结果集中当前行数据,并在调用后自动滑向下一行。其定义如下。复制代码 代码如下:array my...

mysql_connect localhost和127.0.0.1的区别(网络层阐述)

connects.php 复制代码 代码如下: mysql_connect('127.0.0.1','root','zzzizzz1'); mysql_connect('localhos...