From: Marcin Haba Date: Thu, 10 Nov 2022 14:21:17 +0000 (+0100) Subject: baculum: Fix using operators for SQL queries X-Git-Tag: Release-13.0.2~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1560de3fe1c573484fcb10920782f88238695fbb;p=thirdparty%2Fbacula.git baculum: Fix using operators for SQL queries --- diff --git a/gui/baculum/protected/API/Modules/Database.php b/gui/baculum/protected/API/Modules/Database.php index 22267dbe3..fc80a9752 100644 --- a/gui/baculum/protected/API/Modules/Database.php +++ b/gui/baculum/protected/API/Modules/Database.php @@ -167,6 +167,9 @@ class Database extends APIModule { $cond = []; $vals = []; $kval = str_replace('.', '_', $key); + if (!isset($value[$i]['operator'])) { + $value[$i]['operator'] = ''; + } if (is_array($value[$i]['vals'])) { if ($value[$i]['operator'] == 'IN') { // IN operator is treated separately @@ -176,6 +179,7 @@ class Database extends APIModule { $vals[":{$kval}{$i}{$j}"] = $value[$i]['vals'][$j]; } $cond[] = "{$key} {$value[$i]['operator']} (" . implode(',', $tcond) . ')'; + $value[$i]['operator'] = ''; } else { // other operators for ($j = 0; $j < count($value[$i]['vals']); $j++) { @@ -183,14 +187,13 @@ class Database extends APIModule { $vals[":{$kval}{$i}{$j}"] = $value[$i]['vals'][$j]; } } - } elseif (isset($value[$i]['operator']) && in_array($value[$i]['operator'], ['>', '<', '>=', '<='])) { + } elseif (in_array($value[$i]['operator'], ['>', '<', '>=', '<='])) { $cond[] = "{$key} {$value[$i]['operator']} :{$kval}{$i}"; $vals[":{$kval}{$i}"] = $value[$i]['vals']; $value[$i]['operator'] = ''; } else { $cond[] = "$key = :{$kval}{$i}"; $vals[":{$kval}{$i}"] = $value[$i]['vals']; - $value[$i]['operator'] = ''; } $condition[] = implode(' ' . $value[$i]['operator'] . ' ', $cond); foreach ($vals as $pkey => $pval) {