mysqli_multi_query()语句是并行执行还是一个接一个地执行?

时间:2015-08-31 08:55:28

标签: mysql

我正在执行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之前运行。他们不应该一个接一个地不同时处理所有事情吗?

由于

1 个答案:

答案 0 :(得分:0)

查询是一个接一个地执行的,只要您的查询通过单个MySQL连接排队,它就会一直存在。

我感觉你没有正确处理结果。你需要在多次查询后调用mysqli_store_result()一次,然后mysqli_more_results()执行mysqli_next_result()。