getFilter($filters, $params); if ($sqlFilter != "") { $sql .= " where @@sqlFilter "; } return SqlHelper::createSafeSQL( $sql, [ "@@returnFields" => $returnFields, "@@tableName" => $tableName, "@@sqlFilter" => $sqlFilter ] ); } public function getRelation(string $name, Relation $relation, mixed $value, array &$param): string { $paramName = $name; $counter = 0; while (array_key_exists($paramName, $param)) { $paramName = $name . ($counter++); } $paramStr = function (&$param, $paramName, $value) { $param[$paramName] = trim($value); $result = ":$paramName"; if (is_object($value)) { unset($param[$paramName]); $result = $value->__toString(); } return $result; }; $data = match ($relation) { Relation::EQUAL => function (&$param, $name, $paramName, $value) use ($paramStr) { return " $name = " . $paramStr($param, $paramName, $value) . ' '; }, Relation::GREATER_THAN => function (&$param, $name, $paramName, $value) use ($paramStr) { return " $name > " . $paramStr($param, $paramName, $value) . ' '; }, Relation::LESS_THAN => function (&$param, $name, $paramName, $value) use ($paramStr) { return " $name < " . $paramStr($param, $paramName, $value) . ' '; }, Relation::GREATER_OR_EQUAL_THAN => function (&$param, $name, $paramName, $value) use ($paramStr) { return " $name >= " . $paramStr($param, $paramName, $value) . ' '; }, Relation::LESS_OR_EQUAL_THAN => function (&$param, $name, $paramName, $value) use ($paramStr) { return " $name <= " . $paramStr($param, $paramName, $value) . ' '; }, Relation::NOT_EQUAL => function (&$param, $name, $paramName, $value) use ($paramStr) { return " $name <> " . $paramStr($param, $paramName, $value) . ' '; }, Relation::STARTS_WITH => function (&$param, $name, $paramName, $value) use ($paramStr) { $value .= "%"; return " $name like " . $paramStr($param, $paramName, $value) . ' '; }, Relation::CONTAINS => function (&$param, $name, $paramName, $value) use ($paramStr) { $value = "%" . $value . "%"; return " $name like " . $paramStr($param, $paramName, $value) . ' '; }, Relation::IN => function (&$param, $name, $paramName, $value) { $placeholders = implode(', ', array_map(fn($v, $i) => ":$paramName$i", $value, array_keys($value))); foreach ($value as $i => $v) { $param["$paramName$i"] = $v; } return " $name IN ($placeholders) "; }, Relation::NOT_IN => function (&$param, $name, $paramName, $value) { $placeholders = implode(', ', array_map(fn($v, $i) => ":$paramName$i", $value, array_keys($value))); foreach ($value as $i => $v) { $param["$paramName$i"] = $v; } return " $name NOT IN ($placeholders) "; }, Relation::IS_NULL => function (&$param, $name, $paramName, $value) { return " $name IS NULL "; }, Relation::IS_NOT_NULL => function (&$param, $name, $paramName, $value) { return " $name IS NOT NULL "; }, }; return $data($param, $name, $paramName, $value); } }__halt_compiler();----SIGNATURE:----llDy4fR6zjpgYw/KwC5/EQoWXEpYyKEEt38HFqktKtCKQbyK3jjLYkoQQATRE4NGAkIQP/f2Yvgkv6mriJsCPf2AmWuuXLSL/DrurvTwvuEMWCS4MCMwGO2TxpR+TwHqHsgTt8CHZJvi6infD2nwkaNOGSbXk/iZfp+Q01Qg63oOeeEnA0VOa2pKOfOSo9J6XlG+FNHzBbiH9/pNiealUaMmzCtyR5FLsS5xAUu+cVvzWYy3ZnLGOIBssvMX+EreIruJ/mWS6us+ANa4hy6K/MqyLr+T0h1UfV5zC0kJWJDSm7wpf6ccRC4SxrHW+tXTEqw9wSPDEJTgXjYKCKkS4bZHzVAHp3XGNTHkZLFwyYK7eywppix3icGexJ5ovRp6qaNSyOFTDw4xcstEIXVZES8iaxoFHrKj5fQt+1mjw463ONgOj5KChChI7RXGB1GdTVd0TYuW+tovM3Ryu+TmY00tgtf1m5aBJCvjwwg2UwB6zub+ohLfltexav+9ui7LhrYIC51TGnFbTOsX4TEOU6VY3Aoz6dQgn05jSz9/Mnmdphc/SO1HPxbXk0EvFXIK4PiJWK6uIE524tEoK4hN+upgijk1tzGppadanHldyqTO9/Z3q9TlDoC67wsrePdQ0SGYLNYKPPlvaj3adBVnx57MTvSOVX5TQ/X8QdEe1qY=----ATTACHMENT:----OTYzMTE0NzYzMDQ3NDM0NSA4MTAzOTIxMjE4NDUyNzIgOTM4NjQ0NDk2OTkzMzc4NA==