MySQL事务 - 查询更改数据库而不提交?

时间:2012-07-22 00:44:51

标签: php mysql

我正在尝试执行一系列不同的查询。简单地说,我需要它们全部成功执行,或者我不需要执行它们。

此刻,我做了

mysql_query("SET autocommit=0;");
mysql_query("BEGIN;");
mysql_query("QUERY A");
if(mysql_error()){
    mysql_query("rollback;");
    die();
}
mysql_query("QUERY B");
if(mysql_error()){
    mysql_query("rollback;");
    die();
}else{
    mysql_query("commit;");
 }

问题是如果我强制查询B失败,我在查看phpmyadmin中的数据库时仍然可以看到查询A的结果。当然不应该将查询结果添加到数据库中吗?

1 个答案:

答案 0 :(得分:1)

问题是您使用的是MyISAM SHOW ENGINES的输出显而易见。

MyISAM不支持事务,也不支持外键约束 您需要将MySQL版本升级到支持InnoDB的版本 这将解决您的问题。

我猜你的ISP没有帮助你,也许客户支持可以帮助你。