mirror of
https://github.com/vrana/adminer.git
synced 2025-08-12 09:34:10 +02:00
Option to show only errors in SQL command
This commit is contained in:
@@ -300,4 +300,7 @@ $translations = array(
|
|||||||
|
|
||||||
// function translation used in Editor
|
// function translation used in Editor
|
||||||
'now' => 'teď',
|
'now' => 'teď',
|
||||||
|
|
||||||
|
'%d query(s) executed OK.' => array('%d příkaz proběhl v pořádku.', '%d příkazy proběhly v pořádku.', '%d příkazů proběhlo v pořádku.'),
|
||||||
|
'Show only errors' => 'Zobrazit pouze chyby',
|
||||||
);
|
);
|
||||||
|
@@ -9,4 +9,5 @@ $translations = array(
|
|||||||
'%d row(s) have been imported.' => array('%d row has been imported.', '%d rows have been imported.'),
|
'%d row(s) have been imported.' => array('%d row has been imported.', '%d rows have been imported.'),
|
||||||
'%d e-mail(s) have been sent.' => array('%d e-mail has been sent.', '%d e-mails have been sent.'),
|
'%d e-mail(s) have been sent.' => array('%d e-mail has been sent.', '%d e-mails have been sent.'),
|
||||||
'%d in total' => '%d in total',
|
'%d in total' => '%d in total',
|
||||||
|
'%d query(s) executed OK.' => array('%d query executed OK.', '%d queries executed OK.'),
|
||||||
);
|
);
|
||||||
|
@@ -40,7 +40,7 @@ if (!$error && $_POST) {
|
|||||||
$connection2->select_db(DB);
|
$connection2->select_db(DB);
|
||||||
}
|
}
|
||||||
$commands = 0;
|
$commands = 0;
|
||||||
$errors = "";
|
$errors = array();
|
||||||
while ($query != "") {
|
while ($query != "") {
|
||||||
if (!$offset && preg_match('~^\\s*DELIMITER\\s+(.+)~i', $query, $match)) {
|
if (!$offset && preg_match('~^\\s*DELIMITER\\s+(.+)~i', $query, $match)) {
|
||||||
$delimiter = $match[1];
|
$delimiter = $match[1];
|
||||||
@@ -55,18 +55,32 @@ if (!$error && $_POST) {
|
|||||||
if (!$found && rtrim($query) == "") {
|
if (!$found && rtrim($query) == "") {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!$found || $found == $delimiter) { // end of a query
|
if ($found && $found != $delimiter) { // 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else { // end of a query
|
||||||
$empty = false;
|
$empty = false;
|
||||||
$q = substr($query, 0, $match[0][1]);
|
$q = substr($query, 0, $match[0][1]);
|
||||||
$commands++;
|
$commands++;
|
||||||
echo "<pre class='jush-$jush' id='sql-$commands'>" . shorten_utf8(trim($q), 1000) . "</pre>\n";
|
$print = "<pre class='jush-$jush' id='sql-$commands'>" . shorten_utf8(trim($q), 1000) . "</pre>\n";
|
||||||
ob_flush();
|
if (!$_POST["only_errors"]) {
|
||||||
flush(); // can take a long time - show the running query
|
echo $print;
|
||||||
|
ob_flush();
|
||||||
|
flush(); // can take a long time - show the running query
|
||||||
|
}
|
||||||
$start = explode(" ", microtime()); // microtime(true) is available since PHP 5
|
$start = explode(" ", microtime()); // microtime(true) is available since PHP 5
|
||||||
//! don't allow changing of character_set_results, convert encoding of displayed query
|
//! don't allow changing of character_set_results, convert encoding of displayed query
|
||||||
if (!$connection->multi_query($q)) {
|
if (!$connection->multi_query($q)) {
|
||||||
|
echo ($_POST["only_errors"] ? $print : "");
|
||||||
echo "<p class='error'>" . lang('Error in query') . ": " . error() . "\n";
|
echo "<p class='error'>" . lang('Error in query') . ": " . error() . "\n";
|
||||||
$errors .= " <a href='#sql-$commands'>$commands</a>";
|
$errors[] = " <a href='#sql-$commands'>$commands</a>";
|
||||||
if ($_POST["error_stops"]) {
|
if ($_POST["error_stops"]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -78,7 +92,16 @@ if (!$error && $_POST) {
|
|||||||
$result = $connection->store_result();
|
$result = $connection->store_result();
|
||||||
$end = explode(" ", microtime());
|
$end = explode(" ", microtime());
|
||||||
$time = " <span class='time'>(" . lang('%.3f s', max(0, $end[0] - $start[0] + $end[1] - $start[1])) . ")</span>";
|
$time = " <span class='time'>(" . lang('%.3f s', max(0, $end[0] - $start[0] + $end[1] - $start[1])) . ")</span>";
|
||||||
if (is_object($result)) {
|
if (!is_object($result)) {
|
||||||
|
if (preg_match("~^$space*(CREATE|DROP|ALTER)$space+(DATABASE|SCHEMA)\\b~isU", $q)) {
|
||||||
|
restart_session();
|
||||||
|
set_session("dbs", null); // clear cache
|
||||||
|
session_write_close();
|
||||||
|
}
|
||||||
|
if (!$_POST["only_errors"]) {
|
||||||
|
echo "<p class='message' title='" . h($connection->info) . "'>" . lang('Query executed OK, %d row(s) affected.', $connection->affected_rows) . "$time\n";
|
||||||
|
}
|
||||||
|
} elseif (!$_POST["only_errors"]) {
|
||||||
select($result, $connection2);
|
select($result, $connection2);
|
||||||
echo "<p>" . ($result->num_rows ? lang('%d row(s)', $result->num_rows) : "") . $time;
|
echo "<p>" . ($result->num_rows ? lang('%d row(s)', $result->num_rows) : "") . $time;
|
||||||
if ($connection2 && preg_match("~^($space|\\()*SELECT\\b~isU", $q)) {
|
if ($connection2 && preg_match("~^($space|\\()*SELECT\\b~isU", $q)) {
|
||||||
@@ -88,38 +111,22 @@ if (!$error && $_POST) {
|
|||||||
select(explain($connection2, $q));
|
select(explain($connection2, $q));
|
||||||
echo "</div>\n";
|
echo "</div>\n";
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
if (preg_match("~^$space*(CREATE|DROP|ALTER)$space+(DATABASE|SCHEMA)\\b~isU", $q)) {
|
|
||||||
restart_session();
|
|
||||||
set_session("dbs", null); // clear cache
|
|
||||||
session_write_close();
|
|
||||||
}
|
|
||||||
echo "<p class='message' title='" . h($connection->info) . "'>" . lang('Query executed OK, %d row(s) affected.', $connection->affected_rows) . "$time\n";
|
|
||||||
}
|
}
|
||||||
$start = $end;
|
$start = $end;
|
||||||
} while ($connection->next_result());
|
} while ($connection->next_result());
|
||||||
}
|
}
|
||||||
$query = substr($query, $offset);
|
$query = substr($query, $offset);
|
||||||
$offset = 0;
|
$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 ($errors && $commands > 1) {
|
|
||||||
echo "<p class='error'>" . lang('Error in query') . ": $errors\n";
|
|
||||||
}
|
|
||||||
if ($empty) {
|
if ($empty) {
|
||||||
echo "<p class='message'>" . lang('No commands to execute.') . "\n";
|
echo "<p class='message'>" . lang('No commands to execute.') . "\n";
|
||||||
|
} elseif ($_POST["only_errors"]) {
|
||||||
|
echo "<p class='message'>" . lang('%d query(s) executed OK.', $commands - count($errors)) . "\n";
|
||||||
|
} elseif ($errors && $commands > 1) {
|
||||||
|
echo "<p class='error'>" . lang('Error in query') . ": " . implode("", $errors) . "\n";
|
||||||
}
|
}
|
||||||
//! MS SQL - SET SHOWPLAN_ALL OFF
|
//! MS SQL - SET SHOWPLAN_ALL OFF
|
||||||
} else {
|
} else {
|
||||||
@@ -146,6 +153,7 @@ echo "<p>" . (ini_bool("file_uploads") ? lang('File upload') . ': <input type="f
|
|||||||
<input type="submit" value="<?php echo lang('Execute'); ?>" title="Ctrl+Enter">
|
<input type="submit" value="<?php echo lang('Execute'); ?>" title="Ctrl+Enter">
|
||||||
<?php
|
<?php
|
||||||
echo checkbox("error_stops", 1, $_POST["error_stops"], lang('Stop on error'));
|
echo checkbox("error_stops", 1, $_POST["error_stops"], lang('Stop on error'));
|
||||||
|
echo checkbox("only_errors", 1, $_POST["only_errors"], lang('Show only errors'));
|
||||||
|
|
||||||
print_fieldset("webfile", lang('From server'), $_POST["webfile"]);
|
print_fieldset("webfile", lang('From server'), $_POST["webfile"]);
|
||||||
$compress = array();
|
$compress = array();
|
||||||
|
Reference in New Issue
Block a user