MYSQL中只有 INNODB和BDB 类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!)
Mysql基本用法-存储引擎-02中的test_user表 和 phpcvs表
<?php
echo "transaction<br>";
$conn = mysql_connect("localhost","root","");
if(!$conn){
die(mysql_error());
}
mysql_select_db("test");
$sql = "update phpcvs set name='fff04' where id=3";
$sql2 = "update phpcvs set name='abcd' where id=2";
$sqlArr = array($sql,$sql2); //把sql放在数组中
//var_dump($sqlArr);
mysql_query("SET AUTOCOMMIT=0");
mysql_query("begin"); //事务开始
foreach ($sqlArr as $key => $value) { //遍历sql
# code...
if(!mysql_query($value)){ //执行sql,在没有全部执行的时候。
$status = 0; //设定一个状态值
}else{
$status = 1;
}
}
//echo $status;
if($status==0){ //$status==0时,没有全部执行sql
echo "rollback<br>";
mysql_query("rollback"); //事务回滚
}else{
mysql_query("commit");
}
?>