繁体   English   中英

事务MySql和php

[英]Transactions MySql and php

我很困惑通过php脚本运行事务。 在我的MySql中,autocommit设置为1,但是当我运行脚本时

例如:mysql_query(“ START TRANSACTION”);

$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);

当我不提交时,表中插入的记录为零。 仅当我给出commit命令时,记录才会出现。

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

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

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

但是,如果您明确指定START TRANSACTION则不会考虑到它,因此您需要进行应提交的事务。

尝试这样做。

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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM