LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1220|回复: 2

PDO中对于MYSQL数据库的事务处理的问题

[复制链接]
发表于 2006-5-14 04:21:19 | 显示全部楼层 |阅读模式

  1.   $pdo = new PDO("mysql:host=127.0.0.1;dbname=test", 'root', '123456', array( PDO::ATTR_PERSISTENT => true));
  2.   $sql = "INSERT INTO `test1`(`Name`) VALUES('".com_create_guid()."')";  
  3.   var_dump($pdo->beginTransaction());
  4.   var_dump($pdo->query($sql));
  5.   var_dump($pdo->rollBack());
复制代码


按照手册上的说法,因为回滚的原因,上面的代码不会插入任何数据到数据库。
但是实际上并没有回滚~~而使用$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT)的结果居然常为int(1)。并没有按照我理解的那样在beginTransaction后变为int(0),rollBack和commit后变回int(1)。

还没有来得及看PDO的原代码是如何实现事务这部分的~~不过先发个帖子在这放着,如果有哪个兄弟搞过这个,我就省事啦~~呵呵~~
发表于 2006-5-22 15:37:52 | 显示全部楼层
MySQL不支持事务,PDO也没办法
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-26 13:18:24 | 显示全部楼层
并不是mysql不支持事务处理~~从mysql 4开始就已经支持了,更何况我用的是mysql 5.0。

主要的问题是我使用的不是innodb或者bdb,所以事务处理无效~~换用bdb后这段代码就可以了~~之前忽略了这个问题,忘记要指定数据库引擎的~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表