我正在执行mysqli_multi_query(),其中包含2个查询:
UPDATE Customers
SET balance = balance + 15
WHERE ck IN
(SELECT ck
FROM Purchases
WHERE deal_id = 1 AND status = 0);
UPDATE Purchases
SET status = 3
WHERE deal_id = 1;
在执行查询之前 - 在Purchases表中有几条记录,状态为0,但是Customers表由于某种原因没有收到更新。经过测试,一个接一个地手动运行两个查询 - 一切正常。 我感觉第二个UPDATE在第一个UPDATE之前运行。他们不应该一个接一个地不同时处理所有事情吗?
由于
答案 0 :(得分:0)
查询是一个接一个地执行的,只要您的查询通过单个MySQL连接排队,它就会一直存在。
我感觉你没有正确处理结果。你需要在多次查询后调用mysqli_store_result()一次,然后mysqli_more_results()执行mysqli_next_result()。