首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在执行commit()之前重定向

在执行commit()之前重定向
EN

Stack Overflow用户
提问于 2016-07-14 01:45:35
回答 1查看 64关注 0票数 1

这是我的脚本的结构:

代码语言:javascript
运行
复制
try {
    $dbh_conn->beginTransaction();

    $stmt1 = $dbh_conn->prepare("UPDATE ...");
    $stmt1->execute(array($val1));

    if ( condition 1 ) {
        $stmt2 = $dbh_conn->prepare("DELETE ...");
        $stmt2->execute(array($val2));

        header('location: ../page1');
        exit;

    } else {
        header('location: ../page2');
        exit;
    }

    $dbh_conn->commit();

} catch(PDOException $e) {

    $dbh_conn->rollBack();
    echo $e;

}

令人惊讶的是..。正如您所看到的,有if - else语句(总是其中一个将被执行),这两个块( ifelse__)都有一个exit;。另外,$dbh_conn->commit();行在if - else语句之后。

实际上,不应该执行这两个查询。因为在exit;之前有commit()。但是这两个查询也会执行。那么PHP是如何编译我的脚本的呢?我的剧本结构还好吗?(不需要改变什么?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-14 01:57:22

如果您的表是MYISAM,那么事务就无法工作。

但是,mysql不会中断,事务函数/方法不会抛出它们似乎正常工作的错误,除非每次数据库更新都是在发生时提交的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38364260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档