2014-09-10 7 views
0

다른 쿼리에 넣은 다중 쿼리가 실행되지 않습니다. 내부 쿼리의 저장 프로 시저가 실행되지 않았습니다. 다중 쿼리 만 실행 중이지만 루프 내부에서는 다중 쿼리가 실행되지 않습니다. 감기에 InnerQuery가 루프 내부에서 수행되지 않는 이유를 확인하십시오.루프 내에서 multi_query가 실행되지 않습니다.

<?php 
include ("../mysqli.php"); 
if (mysqli_connect_errno()) { 
    printf("Connection error: %s\n", mysqli_connect_error()); 
    exit(); 
} 

# Check Start Time 
$time1 = microtime(true); 

## Start 
if ($DBquery = $mysqli->query("SELECT `id` FROM `Universe`")) { 
    while($obj = $DBquery->fetch_object()){ 
     $id = $obj->id; 
     echo "Start with Product-ID: " . $id . "<br>"; 

     # Defining Inner Query 
     $DBInnerQuery = " 
     SET @CATEGORY := (SELECT ....); 
     SET @Date  := (SELECT ... 
     CALL `PROCEDURE1`; 

     SET @COUNTRY := (SELECT ....); 
     CALL `PROCEDURE2`; 
     ... 
     "; 

     # Inner Query does not run and I don't know why: 
     if ($mysqli->multi_query($DBInnerQuery)) { 
      $time2 = microtime(true) - $time1; 
      echo "Scan for Product-Id " . $id . " solved in " 
      . round ($time2, 4) . " seconds<br>"; 
     } 

    } 
} 
echo "End of Product Check." . "<br>"; 
?> 
+0

시도를? – cen

+0

PHP는 오류를보고하지 않습니다. MySQL 쿼리 창은 첫 번째 또는 두 번째 쿼리에 대한 오류도보고하지 않습니다. – Peter

+0

$ result-> free();가 표시되지 않습니다. 어디서나 $ mysqli-> error를 사용하는 장소가 두 곳 이상 있습니다. – mickmackusa

답변

0

한편, 나는 그것을 해결했습니다 : MySQL의 오류를 반향

# Defining Inner Query 
      CALL `PROCEDURE1;`; 

# Multi Query 
if ($mysqli->multi_query($DBInnerQuery)) { 
    echo "<hr>" . "Scan for all Items solved." . "<br>"; 
} 

$time2 = microtime(true) - $time; 
echo "Used Time: " 
    . round ($time, 4) . " Seconds<br>"; 

echo "End." . "<br>";