background image

Mysql 数据回滚错误的解决方法

以下

PHP 工程师为大家介绍一下关于 Mysql 数据回滚错误的解决方法。需要的朋友可以过

来参考下
MYSQL 的事务处理主要有两种方法。
1、用 begin,rollback,commit 来实现
begin 开始一个事务
rollback 事务回滚
commit 事务确认
2、直接用 set 来改变 mysql 的自动提交模式
MYSQL 默认是自动提交的,也就是你提交一个 QUERY,它就直接执行!我们可以通过
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
来实现事务的处理。
当你用

 set autocommit=0 的时候,你以后所有的 SQL 都将做为事务处理,直到你用 commit

确认或

rollback 结束。

 
注意当你结束这个事务的同时也开启了个新的事务!按第一种方法只将当前的作为一个事
务!
个人推荐使用第一种方法!
 
MYSQL 中只有 INNODB 和 BDB 类型的数据表才能支持事务处理!其他的类型是不支持的!
***:一般 MYSQL 数据库默认的引擎是 MyISAM,这种引擎不支持事务!如果要让 MYSQL
支持事务,可以自己手动修改

:

方法如下:
1.修改 c:\appserv\mysql\my.ini 文件,找到 skip-InnoDB,在前面加上#,后保存文件。
 
2.在运行中输入:services.msc,重启 mysql 服务。
 
3.到 phpmyadmin 中,mysql->show engines;(或执行 mysql->show variables like 'have_%'; ),查

InnoDB 为 YES,即表示数据库支持 InnoDB 了。

也就说明支持事务

transaction 了。

 
4.在创建表时,就可以为 Storage Engine 选择 InnoDB 引擎了。如果是以前创建的表,可以使

mysql->alter table table_name type=InnoDB;

 mysql->alter table table_name engine=InnoDB;来改变数据表的引擎以支持事务。

/*方法一*/

代码如下

:

 

/*************** transaction--1 ***************/

$conn

 = mysql_connect('localhost','root','root') 

or

 

die

 ("数据连接错误!!!");