From e9add6d985446171b762d09dd921ef54fd512f3d Mon Sep 17 00:00:00 2001
From: Jakub Vrana
Date: Thu, 1 Feb 2018 11:43:44 +0100
Subject: [PATCH] Return string from warnings()
---
adminer/drivers/mysql.inc.php | 7 ++++++-
adminer/include/adminer.inc.php | 15 +++++----------
adminer/include/driver.inc.php | 4 ++--
adminer/sql.inc.php | 12 ++++--------
4 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php
index 8eba872c..890a6aaa 100644
--- a/adminer/drivers/mysql.inc.php
+++ b/adminer/drivers/mysql.inc.php
@@ -278,7 +278,12 @@ if (!defined("DRIVER")) {
}
function warnings() {
- return $this->_conn->query("SHOW WARNINGS");
+ $result = $this->_conn->query("SHOW WARNINGS");
+ if ($result && $result->num_rows) {
+ ob_start();
+ select($result); // select() usually needs to print a big table progressively
+ return ob_get_clean();
+ }
}
}
diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php
index 0d66ac48..c28881e9 100644
--- a/adminer/include/adminer.inc.php
+++ b/adminer/include/adminer.inc.php
@@ -212,12 +212,10 @@ class Adminer {
;
$print = "
\n"; // required for IE9 inline edit
$warnings = $driver->warnings();
- if ($warnings && $warnings->num_rows) {
+ if ($warnings) {
$id = "warnings";
- ob_start();
- select($warnings); // select() usually needs to print a big table progressively
$return .= ", \n" . ob_get_clean() . "
\n"
+ . "$print\n" . ob_get_clean() . "
\n";
+ $print = "" . shorten_utf8($query, 1000) . '
'
. ($time ? "
($time)" : '')
diff --git a/adminer/include/driver.inc.php b/adminer/include/driver.inc.php
index a6d1afcd..2c66a363 100644
--- a/adminer/include/driver.inc.php
+++ b/adminer/include/driver.inc.php
@@ -114,10 +114,10 @@
}
/** Get warnings about the last command
- * @return Min_Result or false
+ * @return string HTML
*/
function warnings() {
- return false;
+ return '';
}
}
diff --git a/adminer/sql.inc.php b/adminer/sql.inc.php
index c5a27146..175a80bd 100644
--- a/adminer/sql.inc.php
+++ b/adminer/sql.inc.php
@@ -130,9 +130,9 @@ if (!$error && $_POST) {
$time = "
(" . format_time($start) . ")"
. (strlen($q) < 1000 ? "
" . lang('Edit') . "" : "") // 1000 - maximum length of encoded URL in IE is 2083 characters
;
- $warnings = $driver->warnings();
- $warnings_id = "warnings-$commands";
- if ($warnings && $warnings->num_rows) {
+ $warnings = ($_POST["only_errors"] ? "" : $driver->warnings());
+ if ($warnings) {
+ $warnings_id = "warnings-$commands";
$time .= ",
" . lang('Warnings') . "" . script("qsl('a').onclick = partial(toggle, '$warnings_id');", "");
}
$explain = null;
@@ -168,11 +168,7 @@ if (!$error && $_POST) {
echo "
" . lang('Query executed OK, %d row(s) affected.', $connection->affected_rows) . "$time\n";
}
}
- if ($warnings && $warnings->num_rows && !$_POST["only_errors"]) {
- echo "
\n";
- select($warnings);
- echo "
\n";
- }
+ echo ($warnings ? "
\n$warnings
\n" : "");
if ($explain) {
echo "
\n";
select($explain, $connection2, $orgtables);