2016-08-13 12 views
0

내 양식 제출 중 하나는 삽입 문장의 수천을 실행하는 데 필요한. 이러한 삽입 후 다른 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'); 

하지만 지금의 리디렉션이 완료 query.All을 완료하지 않고 page2.php하기는 삽입하는하지만 난 모든 INSERT 문이 완료 된 후에 만 ​​리디렉션 할.

+0

어떻게 리디렉션되기 전에 완성되지 않았는지 어떻게 알 수 있습니까? –

+0

bcz 우리가 page2.php로 리다이렉트했을 때 백엔드 프로세스가 여전히 작동 중이다. page2.php bcz 데이터를 사용할 수 없다는 오류가있다. –

+0

함수가 블로킹되어 있으므로 ne에 거의 영향을주지 않는다. –

답변

0

이 도움이 될 수 있습니다. 연결을 만들고 각 개별 트랜잭션 (삽입)에 대해 쿼리를 실행하기 만하면됩니다. 쿼리에 실패하면 나머지 트랜잭션이 실행되지 않습니다. 모든 쿼리가 성공적으로 실행 된 경우에만 페이지가 리디렉션되거나 오류 메시지가 표시됩니다.

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");} 
 
?>

나는이 트릭이 일하게 될 것이라 생각합니다.

$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/'); 
}