【发布时间】:2017-08-27 12:16:57
【问题描述】:
我已经找了两天了,仍然没有找到答案。假设我在 PHP 中有下面的代码:
$mysqli->begin_transaction();
mysqli_query($mysqli, "DELETE FROM Test WHERE ID=1");
mysqli_query($mysqli, "DELETE FROM TEST WHEREE ID=2"); <-- THIS ONE WILL FAIL BECAUSE OF TYPO
mysqli_query($mysqli, "DELETE FROM Test WHERE ID=3");
if ($mysqli->commit()) {
//SUCCESS
}
else {
//Failed
$mysqli->rollback();
}
我无法检查事务中的查询是否全部成功,因为当我执行这些查询时,提交函数总是返回 true。
如何检查事务中的所有查询是否成功?
【问题讨论】:
-
将提交包含在 try / catch 结构中。
-
并在 catch 内回滚
-
你能给我举个例子吗?我应该如何捕获每个查询的唯一错误消息?我是否必须在事务中分别检查每个查询,这可行吗?
标签: php mysql transactions commit rollback