Перенаправить страницу PHP только после завершения многопользовательского запроса mysqli

одна из моих отправленных форм должна была выполнить тысячи операторов вставки. После этих вставок я хочу перенаправить страницу на другую страницу php и там я хочу использовать таблицу, которую мы только что вставили.

$query = "INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;ec";
$execute = mysqli_multi_query($query);

header('location:http://www.page2.php');

Но теперь его перенаправление в page2.php без завершения полного запроса. Все вставки, но я хочу перенаправить только после того, как все операторы вставки завершены.

0

Решение

Это может помочь. Просто создайте соединение и выполните запрос для каждой отдельной транзакции (Вставка). Если какой-либо запрос не выполнен, остальные транзакции не будут выполнены. Только если все запросы были успешно выполнены, ваша страница будет перенаправлена ​​или выдаст сообщение об ошибке.

<?php
$conn = //establish connection;
$check=1;
$query=array("INSERT INTO ....","INSERT INTO ....","INSERT INTO ....","INSERT INTO ....","INSERT INTO ....");

foreach($query as $q )
{
if$conn->query($q) === TRUE)
{continue;}
else{$check = 0; break;}

}
if($check==1)
{header('location:http://www.page2.php');}
else{die("There Has Been An Error");}
?>
0

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

Я думаю, что этот трюк будет работать.

$query = "INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;INSERT INTO ....;ec";
$execute = mysqli_multi_query($query);
if ($execute ==1 ) {
header('Location: http://www.page2.com/');
}
0

По вопросам рекламы [email protected]