From 7b0c58af32c158a0957e6779c6e8ed02a312d224 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Mon, 5 Feb 2018 09:23:07 +0100 Subject: [PATCH] Fix affected rows after getting warnings --- adminer/call.inc.php | 3 ++- adminer/drivers/mysql.inc.php | 2 -- adminer/sql.inc.php | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/adminer/call.inc.php b/adminer/call.inc.php index 69d963be..89637a0c 100644 --- a/adminer/call.inc.php +++ b/adminer/call.inc.php @@ -32,6 +32,7 @@ if (!$error && $_POST) { $query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")"; $start = microtime(true); $result = $connection->multi_query($query); + $affected = $connection->affected_rows; // getting warnigns overwrites this echo $adminer->selectQuery($query, $start, !$result); if (!$result) { @@ -47,7 +48,7 @@ if (!$error && $_POST) { if (is_object($result)) { select($result, $connection2); } else { - echo "

" . lang('Routine has been called, %d row(s) affected.', $connection->affected_rows) . "\n"; + echo "

" . lang('Routine has been called, %d row(s) affected.', $affected) . "\n"; } } while ($connection->next_result()); diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 8244e8ad..2f93e099 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -278,9 +278,7 @@ if (!defined("DRIVER")) { } function warnings() { - $affected = $this->_conn->affected_rows; $result = $this->_conn->query("SHOW WARNINGS"); - $this->_conn->affected_rows = $affected; if ($result && $result->num_rows) { ob_start(); select($result); // select() usually needs to print a big table progressively diff --git a/adminer/sql.inc.php b/adminer/sql.inc.php index fa20702a..b4cb268a 100644 --- a/adminer/sql.inc.php +++ b/adminer/sql.inc.php @@ -130,6 +130,7 @@ if (!$error && $_POST) { $time = " (" . format_time($start) . ")" . (strlen($q) < 1000 ? " " . lang('Edit') . "" : "") // 1000 - maximum length of encoded URL in IE is 2083 characters ; + $affected = $connection->affected_rows; // getting warnigns overwrites this $warnings = ($_POST["only_errors"] ? "" : $driver->warnings()); $warnings_id = "warnings-$commands"; if ($warnings) { @@ -165,7 +166,7 @@ if (!$error && $_POST) { stop_session(); } if (!$_POST["only_errors"]) { - echo "

" . lang('Query executed OK, %d row(s) affected.', $connection->affected_rows) . "$time\n"; + echo "

" . lang('Query executed OK, %d row(s) affected.', $affected) . "$time\n"; } } echo ($warnings ? "

\n" : "");