我有一个问题,即在交易中测试这些询问。 我在相当一段时间里一直在利用MySQL的交易,每次我这样做,我都使用这样的东西:
$doCommit = true;
$error = "";
mysql_query("BEGIN");
/* repeat this part with the different queries in the transaction
this often involves updating of and inserting in multiple tables */
$query = "SELECT, UPDATE, INSERT, etc";
$result = mysql_query($query);
if(!$result){
$error .= mysql_error() . " in " . $query . "<BR>";
$doCommit = false;
}
/* end of repeating part */
if($doCommit){
mysql_query("COMMIT");
} else {
echo $error;
mysql_query("ROLLBACK");
}
现在经常发生的情况是,我想要测试我的交易,因此,我改动了mysql_query(“ROLBACK”);
,但我可以想象,这不是检验这种困难的非常好办法。 通常无法将每张表格复制到一张温床和更新,并插入这些表格,然后删除这些表格(例如,表格可能非常庞大)。 当然,当该守则生效时,就会出现相关的错误处理(而不是仅仅印刷错误)。
这样做的最佳途径是什么?