我正在尝试执行一系列不同的查询。简单地说,我需要它们全部成功执行,或者我不需要执行它们。
此刻,我做了
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的结果。当然不应该将查询结果添加到数据库中吗?
答案 0 :(得分:1)
问题是您使用的是MyISAM
SHOW ENGINES
的输出显而易见。
MyISAM不支持事务,也不支持外键约束 您需要将MySQL版本升级到支持InnoDB的版本 这将解决您的问题。
我猜你的ISP没有帮助你,也许客户支持可以帮助你。