首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事务MySql和php

事务MySql和php
EN

Stack Overflow用户
提问于 2012-11-08 11:00:57
回答 2查看 184关注 0票数 1

我对通过php脚本运行事务的abt感到困惑。在我的MySql自动提交中,设置为1,但是当我运行一个脚本时

例:mysql_query(“开始交易”);

代码语言:javascript
复制
$sql="INSERT INTO 
`address`(`Address_Id`, 
`Address_Line1`, 
`Address_line2`, 
`Zip`, 
`Created_By`,
 `Created_Date`, 
 `Updated_By`, 
 `Updated_Date`) 
VALUES ('2','this is test1','test2','210','SYSTEM','NOW()','SYSTEM','NOW()')";

mysql_query($sql);

当我不提交时,表中插入的记录为零。只有当我发出提交命令时,记录才会出现。

还请告诉我,如果我在php脚本中启动事务,然后不给回滚或提交语句,会发生什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-08 11:04:49

http://dev.mysql.com/doc/refman/5.5/en/commit.html

默认情况下,MySQL运行时启用了自动提交模式。这意味着,一旦执行更新(修改)表的语句,MySQL就会将更新存储在磁盘上,使其永久化。

但是,如果您显式地指定了START TRANSACTION,那么它就不会被考虑到,所以您在一个应该提交的事务中工作。

票数 0
EN

Stack Overflow用户

发布于 2012-11-08 11:11:42

试着这样做。

代码语言:javascript
复制
mysql_query("BEGIN");

        $query="";
        $result=mysql_query($query);

        if($result==0)
        {
            mysql_query("ROLLBACK");
           echo $error_message;
          // mysql_query($query_setId);
           die();
        }

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

https://stackoverflow.com/questions/13287723

复制
相关文章

相似问题

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