select_db(DB); } $explain = 1; while (strlen($query)) { if (!$offset && preg_match('~^\\s*DELIMITER\\s+(.+)~i', $query, $match)) { $delimiter = $match[1]; $query = substr($query, strlen($match[0])); } else { preg_match('(' . preg_quote($delimiter) . '|[\'`"]|/\\*|-- |#|$)', $query, $match, PREG_OFFSET_CAPTURE, $offset); // should always match $found = $match[0][0]; $offset = $match[0][1] + strlen($found); if (!$found && $fp && !feof($fp)) { $query .= fread($fp, 1e5); } else { if (!$found && !strlen(rtrim($query))) { break; } if (!$found || $found == $delimiter) { // end of a query $empty = false; $q = substr($query, 0, $match[0][1]); echo "
" . shorten_utf8(trim($q), 1000) . "
\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 (!$connection->multi_query($q)) { echo "

" . lang('Error in query') . ": " . h($connection->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 = $connection->store_result(); if (is_object($result)) { select($result, $connection2); if ($connection2 && preg_match("~^$space*SELECT$space+~isU", $q)) { $id = "explain-$explain"; echo "

" . ($result->num_rows ? lang('%d row(s)', $result->num_rows) . ", " : ""); echo "EXPLAIN\n"; echo "

\n"; $explain++; } } else { if (preg_match("~^$space*$alter_database", $query)) { $databases = null; // clear cache } echo "

" . lang('Query executed OK, %d row(s) affected.', $connection->affected_rows) . "\n"; } unset($result); // free resultset } while ($connection->next_result()); } $query = substr($query, $offset); $offset = 0; } else { // find matching quote or comment end while (preg_match('~' . ($found == '/*' ? '\\*/' : (ereg('-- |#', $found) ? "\n" : "$found|\\\\.")) . '|$~s', $query, $match, PREG_OFFSET_CAPTURE, $offset)) { //! respect sql_mode NO_BACKSLASH_ESCAPES $s = $match[0][0]; $offset = $match[0][1] + strlen($s); if (!$s && $fp && !feof($fp)) { $query .= fread($fp, 1e6); } elseif ($s[0] != "\\") { break; } } } } } } if ($empty) { echo "

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

" . upload_error($query) . "\n"; } } ?>

:

"zlib", "bz2" => "bzip2") as $key => $val) { if (in_array("compress.$val", stream_get_wrappers())) { $compress[] = ".$key"; } } echo lang('Webserver file %s', "adminer.sql" . ($compress ? "[" . implode("|", $compress) . "]" : "") . ""); ?> " . lang('History') . "\n"; foreach ($history as $key => $val) { //! save and display timestamp echo '' . lang('Edit') . ' ' . shorten_utf8(ltrim(str_replace("\n", " ", str_replace("\r", "", preg_replace('~^(#|-- ).*~m', '', $val)))), 80, "") . "
\n"; } echo "\n"; echo "\n"; } ?>