for($i=0;$i<50;$i++)
{
$sql="insert into aa(name)values('$name')";
mysql_query($sql); $sql_a="insert into bb(user,aa)values('$name','$aa')";
mysql_query($sql_a);}
在循环中,任何一条插入语句执行失败数据都回滚并退出
在这样的循环中,如何添加事务处理?
谢谢。高人。
{
$sql="insert into aa(name)values('$name')";
mysql_query($sql); $sql_a="insert into bb(user,aa)values('$name','$aa')";
mysql_query($sql_a);}
在循环中,任何一条插入语句执行失败数据都回滚并退出
在这样的循环中,如何添加事务处理?
谢谢。高人。
mysql_query("begin");
$flag = true;
for($i=0;$i<50;$i++)
{
$sql="insert into aa(name)values('$name')";
if (!mysql_query($sql))
{
mysql_query("rollback");
$flag = false;
break;
} $sql_a="insert into bb(user,aa)values('$name','$aa')";
if (!mysql_query($sql_a))
{
mysql_query("rollback");
$flag = false;
break;
}}
if ($flag)
{
mysql_query("commit");
}
else
{
die('sql执行错误');
}另外,多条insert可以优化成1条进行插入,比如你这个可以把所有的insert弄成2条insert语句。
先确认你的表支持不支持事物然后...$sql="insert into aa(name)values('$name')";
$sql_a="insert into bb(user,aa)values('$name','$aa')";mysql_query("SET AUTOCOMMIT=0");mysql_query("BEGIN");if ((mysql_query($sql)) && ((mysql_query($sql_a))){
mysql_query("COMMIT");
}else{
mysql_query("ROLLBACK");
}应该是这样吧..
{