首页 >社区问答列表 >请问设置了事务机制,故意设置第2条sql语句错误,为什么最后还是执行了第1条sql语句? 不是应该回滚事务,所有不执行吗?

请问设置了事务机制,故意设置第2条sql语句错误,为什么最后还是执行了第1条sql语句? 不是应该回滚事务,所有不执行吗?


<?php

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

try{

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo->beginTransaction();

//第1条sql语句

$sqla="delete from chen where id=14";

$pdo->exec($sqla);

//第2天sql语句

$sqlb="delete froms chen where id=15"; //故意把from写错

$pdo->exec($sqlb);


}catch(Exception $e){

$pdo->rollBack();

$e->getMessage();

echo "操作失败";

}

?>


  • NULL
  • NULL    2018-05-21 10:55:041楼

    数据库引擎是不是MyISAM,改成InnoDB试试

    +1添加回复

  • 回复

    嗯 是的 发现问题了 非常感谢您 厉害

    陈老师  作者 · 2018-05-21 10:55:46
    回复