mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 08:44:07 -04:00
Merge pull request #24500 from nextcloud/bugfix/noid/log_query_no_crash
Prevent log_query to mess up regular execution flow
This commit is contained in:
commit
d69407963c
1 changed files with 26 additions and 18 deletions
|
|
@ -193,25 +193,33 @@ class QueryBuilder implements IQueryBuilder {
|
|||
*/
|
||||
public function execute() {
|
||||
if ($this->systemConfig->getValue('log_query', false)) {
|
||||
$params = [];
|
||||
foreach ($this->getParameters() as $placeholder => $value) {
|
||||
if (is_array($value)) {
|
||||
$params[] = $placeholder . ' => (\'' . implode('\', \'', $value) . '\')';
|
||||
} else {
|
||||
$params[] = $placeholder . ' => \'' . $value . '\'';
|
||||
try {
|
||||
$params = [];
|
||||
foreach ($this->getParameters() as $placeholder => $value) {
|
||||
if ($value instanceof \DateTime) {
|
||||
$params[] = $placeholder . ' => DateTime:\'' . $value->format('c') . '\'';
|
||||
} elseif (is_array($value)) {
|
||||
$params[] = $placeholder . ' => (\'' . implode('\', \'', $value) . '\')';
|
||||
} else {
|
||||
$params[] = $placeholder . ' => \'' . $value . '\'';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (empty($params)) {
|
||||
$this->logger->debug('DB QueryBuilder: \'{query}\'', [
|
||||
'query' => $this->getSQL(),
|
||||
'app' => 'core',
|
||||
]);
|
||||
} else {
|
||||
$this->logger->debug('DB QueryBuilder: \'{query}\' with parameters: {params}', [
|
||||
'query' => $this->getSQL(),
|
||||
'params' => implode(', ', $params),
|
||||
'app' => 'core',
|
||||
]);
|
||||
if (empty($params)) {
|
||||
$this->logger->debug('DB QueryBuilder: \'{query}\'', [
|
||||
'query' => $this->getSQL(),
|
||||
'app' => 'core',
|
||||
]);
|
||||
} else {
|
||||
$this->logger->debug('DB QueryBuilder: \'{query}\' with parameters: {params}', [
|
||||
'query' => $this->getSQL(),
|
||||
'params' => implode(', ', $params),
|
||||
'app' => 'core',
|
||||
]);
|
||||
}
|
||||
} catch (\Error $e) {
|
||||
// likely an error during conversion of $value to string
|
||||
$this->logger->debug('DB QueryBuilder: error trying to log SQL query');
|
||||
$this->logger->logException($e);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue