Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410270
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: Mysql/postgreSQL

2012-11-12 11:37:14

在之前介绍了用已经有了个小示例,下面介绍用mysql原生驱动实现事务处理机制,进行事务处理的步骤都是一样的上篇已经介绍过了
 
开始首先说明一下,mysql数据库默认的数据库引擎是MyISAM,是不支持事务的,单数如果你添加了数据执行语句是不会出错的,单数不管用,即便是回滚事务,记录也是插入进去了,所有首先我们要做的第一步是更改数据库引擎语句如下:alter table tableName engine=InnoDB;
用到的表
CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) NOT NULL auto_increment,
`websitename` varchar(200) character set utf8 NOT NULL,
`websiteurl` varchar(200) character set utf8 NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
--
第二不就是如果和添加事物:
$con = mysql_connect("localhost", "root", "vertrigo");
//开始事务
mysql_db_query("mysqlnew","BEGIN");
$insertSql ="insert into test(websitename,websiteurl)values('','')";//该记录插入数据库
mysql_db_query("mysqlnew",$insertSql);
$insertSql ="insert into test(websitename,websiteurl)values('soso','')";//该记录插入数据库
mysql_db_query("mysqlnew",$insertSql);
//结束事务事务
mysql_db_query("mysqlnew","COMMIT");
//开始事务
mysql_db_query("mysqlnew","BEGIN");
$insertSql ="insert into test(websitename,websiteurl)values('baidu','')";//该记录不插入数据库
mysql_db_query("mysqlnew",$insertSql);
//结束事务事务
mysql_db_query("mysqlnew","ROLLBACK");
//开始事务
mysql_db_query("mysqlnew","BEGIN");
$insertSql ="insert into test(websitename,websiteurl)values('niutw','')";//该记录不插入数据库
mysql_db_query("mysqlnew",$insertSql);
?>
原文地址:
阅读(627) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~