|
|
|
|
@ -414,7 +414,7 @@ class Connection extends PrimaryReadReplicaConnection { |
|
|
|
|
|
|
|
|
|
$sql = $this->finishQuery($sql); |
|
|
|
|
$this->queriesExecuted++; |
|
|
|
|
$this->logQueryToFile($sql); |
|
|
|
|
$this->logQueryToFile($sql, $params); |
|
|
|
|
try { |
|
|
|
|
return parent::executeQuery($sql, $params, $types, $qcp); |
|
|
|
|
} catch (\Exception $e) { |
|
|
|
|
@ -461,7 +461,7 @@ class Connection extends PrimaryReadReplicaConnection { |
|
|
|
|
} |
|
|
|
|
$sql = $this->finishQuery($sql); |
|
|
|
|
$this->queriesExecuted++; |
|
|
|
|
$this->logQueryToFile($sql); |
|
|
|
|
$this->logQueryToFile($sql, $params); |
|
|
|
|
try { |
|
|
|
|
return (int)parent::executeStatement($sql, $params, $types); |
|
|
|
|
} catch (\Exception $e) { |
|
|
|
|
@ -470,14 +470,19 @@ class Connection extends PrimaryReadReplicaConnection { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function logQueryToFile(string $sql): void { |
|
|
|
|
protected function logQueryToFile(string $sql, array $params): void { |
|
|
|
|
$logFile = $this->systemConfig->getValue('query_log_file'); |
|
|
|
|
if ($logFile !== '' && is_writable(dirname($logFile)) && (!file_exists($logFile) || is_writable($logFile))) { |
|
|
|
|
$prefix = ''; |
|
|
|
|
if ($this->systemConfig->getValue('query_log_file_requestid') === 'yes') { |
|
|
|
|
$prefix .= Server::get(IRequestId::class)->getId() . "\t"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$postfix = ''; |
|
|
|
|
if ($this->systemConfig->getValue('query_log_file_parameters') === 'yes') { |
|
|
|
|
$postfix .= '; ' . json_encode($params); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($this->systemConfig->getValue('query_log_file_backtrace') === 'yes') { |
|
|
|
|
$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); |
|
|
|
|
array_pop($trace); |
|
|
|
|
|