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 "

" . lang('Query executed OK, %d row(s) affected.', $dbh->affected_rows) . "\n"; } } while ($dbh->next_result()); } $query = substr($query, $match[0][1] + strlen($match[0][0])); $offset = 0; } } } if ($empty) { echo "

" . lang('No commands to execute.') . "\n"; } } else { echo "

" . lang('Unable to upload a file.') . "\n"; } } ?>

: " . lang('History') . "\n"; foreach ($history as $key => $val) { //! save and display timestamp echo '' . lang('Edit') . ' ' . shorten_utf8(str_replace("\n", " ", $val), 80, "") . "
\n"; } echo "\n"; } ?>