1

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

例如:mysql_query("开始交易");

$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 脚本中我开始事务然后不给出回滚或提交语句会发生什么

4

2 回答 2

0

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

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

但是,如果您START TRANSACTION明确指定 - 那么它不会被考虑在内,因此您在应该提交的事务中工作。

于 2012-11-08T11:04:49.987 回答
0

尝试这样做。

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");
于 2012-11-08T11:11:42.070 回答