1
我正在学习使用与MySQL交易,它似乎没有像它应该那样工作。MySQL事务不会停止在错误
我创建了一些测试代码:
$db->query('START TRANSACTION;');
$db->query('DELETE FROM test1 WHERE id=4');
$db->query('DELETE FROM ttest2 WHERE id=5');
$res = $db->commit();
其中 “ttest2” 是故意错误(表被拼错)。
对于正常的查询,$ res将为false,查询将失败。但是当我运行事务时,第一次删除发生,它忽略第二次,并且$ res仍然是真的。我认为事务不会允许任何查询发生,除非它们全部正确发生。为什么它返回true,并且如何在PHP中捕获错误?
“我认为交易不会允许任何查询发生,除非它们全部正确发生。”没有“正确”这个词你是对的。 – Johan