【发布时间】:2013-01-05 20:00:43
【问题描述】:
我有两个相互依赖的查询,即如果第一个查询未执行,则不应执行第二个查询,反之,如果无法执行第二个查询,则不应执行第一个查询。
INSERT INTO `table` VALUES (1,2,3)
UPDATE `otherTable` SET `val1`=1 WHERE `id`=$idOfInsert
ON DUPLICATE KEY UPDATE 不是答案。
我尝试使用mysqli::multi_query,但事实证明它会执行第一个,即使第二个无法执行(它会因错误而停止)。
如何在 PHP 中实现这一点?
【问题讨论】:
-
"如果第二个不能执行,第一个不应该执行" 这个要求是对逻辑的直接挑战。不可能
-
@HankyPanky 数据库事务专门用于处理这些情况,以保证一致性。
-
根据起始状态,你想要的完成状态是什么?你说的不是很清楚。 PS 更新命令/语句不是查询。