PHP操作MYSQL事务,原文来自百度知道

李朗 2018-7-16 256

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理
其他的类型是不支持的!
以下是事务的一个例子

<?php
$handler=mysql_connect("localhost","root","");
mysql_select_db("task");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
?>



追问

假设第一条成功了,第二条失败了,那么连带第一条也要回滚,这个怎么做?


追答

使用IF嵌套IF
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
if(!mysql_query("insert into trans (id) values('4')"))
    {
    mysql_query("ROOLBACK");//判断执行失败回滚
    }
}


内容


最新回复 (0)
返回

豫公网安备 41130202000228号