Я хотел бы синхронизировать выполнение php с транзакцией mysql. (Заставьте php ждать завершения транзакции ….)

$query = "START TRANSACTION;\n".$update.$insert."COMMIT;\n";

//print $query;

if (!$mysqli->multi_query($query)) {
echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

// need to delay somehow until after the transaction is complete.

header('Location: ../seller-services.php?services=$'.$services);

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я вызываю seller-services.php, только что внесенные транзакцией изменения еще не отражены в базе данных, поэтому запросы, которые я использую для создания выходных данных для seller-services.php, не обязательно видны , Если я нажму обновить, я увижу изменения. Я мог бы сделать некоторую жесткую задержку, например, секунду, но я бы предпочел синхронизировать выполнение php с транзакцией mysql. Если это возможно, пожалуйста, дайте мне знать.

Я не думаю, что тип запроса важен, но в случае, если вы хотели бы видеть часть этого запроса в более конкретной форме:

Внутри цикла я:

        $insert .= "INSERT INTO SellerServices
(`id`, `Type`, `Details`, `Active`)
VALUES
('$id', '$type', '$details', '1')
ON DUPLICATE KEY UPDATE
`Details`='$details',
`Active`='1';\n";
$services .= "&$type";

Я думаю, что вы можете использовать свое воображение для отдыха

1

Решение

Вам просто нужно пройтись по каждому запросу, даже если вы ничего не делаете:

while ($mysqli->next_result()) {}

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector