无法回滚原因MYSQL中只有【INNODB】和【BDB】类型的数据表才能支持事务处理!其他的类型是不支持的!
ALTER TABLE `这里改成您自己数据库表名` ENGINE='InnoDB';
ALTER TABLE `admin` ENGINE='InnoDB';
PHP Mysql回滚
<?php
$conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");
mysql_select_db('test',$conn);
mysql_query("set names 'GBK'");
mysql_query("BEGIN");
$sql = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
$sql2 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
$res = mysql_query($sql);
$res1 = mysql_query($sql2);
if($res && $res1){
mysql_query("COMMIT");
echo '提交成功。';
}else{
mysql_query("ROLLBACK");
echo '数据回滚。';
}
mysql_query("END");
mysql_query("SET AUTOCOMMIT=0");
$sql = "INSERT INTO `user` (`id`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
$sql2 = "INSERT INTO `user` (`did`, `username`, `sex`) VALUES (NULL, 'test1', '0')";
$res = mysql_query($sql);
$res1 = mysql_query($sql2);
if($res and $res1){
mysql_query("COMMIT");
echo '提交成功。';
}else{
mysql_query("ROLLBACK");
echo '数据回滚。';
}
mysql_query("END");
Mysqli回滚
<?php
$con=mysqli_connect("localhost","root","123456","RUNOOB");
if (mysqli_connect_errno($con))
{
echo "连接 MySQL 失败: " . mysqli_connect_error();
}
mysqli_autocommit($con,FALSE);
$sql = mysqli_query($con,"INSERT INTO websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN')");
$sql1 = mysqli_query($con,"INSERT INTO websites (name, url, alexa, country)
VALUES (Facebook','https://www.facebook.com/','2','USA')");
if($sql and $sql1){
mysqli_commit($con);
echo '提交成功。';
}else{
mysqli_rollback($con);
echo '数据回滚。';
}
mysqli_close($con);
?>