mysql 事务 无效_php中mysql事务回滚无效

我的测试环境:AppServ

header("Content-type:text/html;charset=utf-8");

$pdo = new PDO('mysql:host=localhost;dbname=data','root','root');

$pdo->exec('set names utf8');

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);#修改报错模式

#开启事务

$pdo->beginTransaction();

try{

#第一次操作

$sql = 'delete from books where bId=40';

$smt = $pdo->prepare($sql);

$smt->execute();

#第二次操作

$sql = 'delete from1 books where bId=39';

$smt = $pdo->prepare($sql);

$smt->execute();

#成功提交

$pdo->commit();

}catch(PDOException $e){

echo $e->getMessage().'
'.$e->getLine();

#失败撤回

$pdo->rollBack();

}

?>

如上:第二次操作出错的情况下 第一条操作没有被回滚

这时候赶紧去看看你的数据库引擎,你肯定看到是MyISAM,很不幸这个引擎不支持事务回滚。切换到 InnoDB 即可 。

af66c6fabbb8

InnoDB.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值