Errors summary

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1301 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana 2010-02-03 11:07:00 +00:00
parent dfe2540380
commit c3137f81b9

View file

@ -39,7 +39,8 @@ if (!$error && $_POST) {
if (is_object($connection2)) { if (is_object($connection2)) {
$connection2->select_db(DB); $connection2->select_db(DB);
} }
$explain = 1; $queries = 0;
$errors = "";
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];
@ -57,13 +58,15 @@ if (!$error && $_POST) {
if (!$found || $found == $delimiter) { // end of a query if (!$found || $found == $delimiter) { // end of a query
$empty = false; $empty = false;
$q = substr($query, 0, $match[0][1]); $q = substr($query, 0, $match[0][1]);
echo "<pre class='jush-sql'>" . shorten_utf8(trim($q), 1000) . "</pre>\n"; $queries++;
echo "<pre class='jush-sql' id='sql-$queries'>" . shorten_utf8(trim($q), 1000) . "</pre>\n";
ob_flush(); ob_flush();
flush(); // can take a long time - show the running query 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 "<p class='error'>" . lang('Error in query') . ": " . error() . "\n"; echo "<p class='error'>" . lang('Error in query') . ": " . error() . "\n";
$errors .= " <a href='#sql-$queries'>$queries</a>";
if ($_POST["error_stops"]) { if ($_POST["error_stops"]) {
break; break;
} }
@ -75,13 +78,12 @@ if (!$error && $_POST) {
if (is_object($result)) { if (is_object($result)) {
select($result, $connection2); select($result, $connection2);
if ($connection2 && preg_match("~^($space|\\()*SELECT\\b~isU", $q)) { if ($connection2 && preg_match("~^($space|\\()*SELECT\\b~isU", $q)) {
$id = "explain-$explain"; $id = "explain-$queries";
echo "<p>" . ($result->num_rows ? lang('%d row(s)', $result->num_rows) . ", " : ""); echo "<p>" . ($result->num_rows ? lang('%d row(s)', $result->num_rows) . ", " : "");
echo "<a href='#$id' onclick=\"return !toggle('$id');\">EXPLAIN</a>\n"; echo "<a href='#$id' onclick=\"return !toggle('$id');\">EXPLAIN</a>\n";
echo "<div id='$id' class='hidden'>\n"; echo "<div id='$id' class='hidden'>\n";
select($connection2->query("EXPLAIN $q")); select($connection2->query("EXPLAIN $q"));
echo "</div>\n"; echo "</div>\n";
$explain++;
} }
} else { } else {
if (preg_match("~^$space*$alter_database", $query)) { if (preg_match("~^$space*$alter_database", $query)) {
@ -108,6 +110,9 @@ if (!$error && $_POST) {
} }
} }
} }
if ($errors && $queries > 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";
} }