select_db($_GET["db"]); } while (strlen($query)) { if (!$offset && preg_match('~^\\s*DELIMITER\\s+(.+)~i', $query, $match)) { $delimiter = $match[1]; $query = substr($query, strlen($match[0])); } elseif (preg_match('(' . preg_quote($delimiter) . '|[\'`"]|/\\*|-- |#|$)', $query, $match, PREG_OFFSET_CAPTURE, $offset)) { if ($match[0][0] && $match[0][0] != $delimiter) { // is not end of a query - find closing part $pattern = ($match[0][0] == "-- " || $match[0][0] == "#" ? '~.*~' : ($match[0][0] == "/*" ? '~.*\\*/~sU' : '~\\G([^\\\\' . $match[0][0] . ']+|\\\\.)*(' . $match[0][0] . '|$)~s')); preg_match($pattern, $query, $match, PREG_OFFSET_CAPTURE, $match[0][1] + 1); $offset = $match[0][1] + strlen($match[0][0]); } else { $empty = false; echo "
" . shorten_utf8(trim(substr($query, 0, $match[0][1]))) . "\n"; ob_flush(); flush(); // can take a long time - show the running query $start = explode(" ", microtime()); // microtime(true) is available since PHP 5 //! don't allow changing of character_set_results, convert encoding of displayed query if (!$dbh->multi_query(substr($query, 0, $match[0][1]))) { echo "
" . lang('Error in query') . ": " . htmlspecialchars($dbh->error) . "
\n"; if ($_POST["error_stops"]) { break; } } else { $end = explode(" ", microtime()); echo "" . lang('%.3f s', max(0, $end[0] - $start[0] + $end[1] - $start[1])) . "
\n"; do { $result = $dbh->store_result(); if (is_object($result)) { select($result, $dbh2); } else { if (preg_match("~^$space*(CREATE|DROP)$space+(DATABASE|SCHEMA)\\b~isU", $query)) { unset($_SESSION["databases"][$_GET["server"]]); // clear cache } echo " \n"; } } while ($dbh->next_result()); } $query = substr($query, $match[0][1] + strlen($match[0][0])); $offset = 0; } } } if ($empty) { echo " \n"; } } else { echo "" . lang('Unable to upload a file.') . "
\n"; } } ?>