From b4f1aa53b4da6241e031baba61cd85187f49c03c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim=20D=C3=BCsterhus?= Date: Sun, 2 Feb 2020 15:59:10 +0100 Subject: [PATCH] Cache request information for SQL queries --- .../files/lib/system/database/Database.class.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/wcfsetup/install/files/lib/system/database/Database.class.php b/wcfsetup/install/files/lib/system/database/Database.class.php index 8fd5af789d..b2d1650554 100644 --- a/wcfsetup/install/files/lib/system/database/Database.class.php +++ b/wcfsetup/install/files/lib/system/database/Database.class.php @@ -259,13 +259,16 @@ abstract class Database { // Note: This is meant to be run unconditionally in production to be // useful. Thus the code to retrieve the request information // must be absolutely lightweight. - $requestInformation = ''; - if (defined('ENABLE_PRODUCTION_DEBUG_MODE') && ENABLE_PRODUCTION_DEBUG_MODE && isset($_SERVER['REQUEST_URI'])) { - $requestInformation = substr($_SERVER['REQUEST_URI'].(\wcf\getRequestId() ? ' ('.\wcf\getRequestId().')' : ''), 0, 90); - if (isset($_REQUEST['className']) && isset($_REQUEST['actionName'])) { - $requestInformation .= ' ('.$_REQUEST['className'].':'.$_REQUEST['actionName'].')'; + static $requestInformation = null; + if ($requestInformation === null) { + $requestInformation = ''; + if (defined('ENABLE_PRODUCTION_DEBUG_MODE') && ENABLE_PRODUCTION_DEBUG_MODE && isset($_SERVER['REQUEST_URI'])) { + $requestInformation = substr($_SERVER['REQUEST_URI'].(\wcf\getRequestId() ? ' ('.\wcf\getRequestId().')' : ''), 0, 90); + if (isset($_REQUEST['className']) && isset($_REQUEST['actionName'])) { + $requestInformation .= ' ('.$_REQUEST['className'].':'.$_REQUEST['actionName'].')'; + } + $requestInformation = substr($requestInformation, 0, 180); } - $requestInformation = substr($requestInformation, 0, 180); } $pdoStatement = $this->pdo->prepare($statement.($requestInformation ? " -- ".$this->pdo->quote($requestInformation) : '')); -- 2.20.1