getQueryPart("parammodel") != "") { return $connData->getQueryPart("parammodel"); } return ":_"; } /** * Transform generic parameters [[PARAM]] in a parameter recognized by the provider * name based on current DbParameter array. * * @param Uri $connData * @param string $sql * @param array $params * @return array An array with the adjusted SQL and PARAMs */ public static function parseSQL(Uri $connData, $sql, $params = null) { $paramSubstName = SqlBind::getParamModel($connData); $sqlAlter = preg_replace("~'.*?((\\\\'|'').*?)*'~", "", $sql); preg_match_all( "/(?\\[\\[|:)(?[\\w\\d]+)(?\\]\\]|[^\\d\\w]|$)/", $sqlAlter, $matches ); $usedParams = []; if (is_null($params)) { $params = []; } foreach ($matches['param'] as $paramName) { if (!array_key_exists($paramName, $params)) { // Remove NON DEFINED parameters $sql = preg_replace( [ "/\\[\\[$paramName\\]\\]/", "/:$paramName([^\\d\\w]|$)/" ], [ "null", "null$2" ], $sql ); continue; } $usedParams[$paramName] = isset($params[$paramName]) ? $params[$paramName] : null; $dbArg = str_replace("_", SqlBind::keyAdj($paramName), $paramSubstName); $count = 0; $sql = preg_replace( [ "/\\[\\[$paramName\\]\\]/", "/:$paramName([^\\w\\d]|$)/", ], [ $dbArg . '', $dbArg . '$1', ], $sql, -1, $count ); } return [$sql, $usedParams]; } public static function keyAdj($key) { return str_replace(".", "_", $key); } } __halt_compiler();----SIGNATURE:----mrPKenQI1H2vNX7/6gfaQoXL5FwUZ7xMAJ52O6tKdx2J8VTSWOjw2mM4zxqaHsGwqWfVIB6WNimS0Tt6bvKsY9ff5V2Gj6sQ3w+FSpY5fxZQpmvLyyq0oTaUCHZpys0HBAIRZYQO1BHNR4udjNyrFPw7jY8acFQouhuLHEnU/Ge3pfhXCPuZPsw1GN+guc+ZRASJ53KeR1VNl+LrnTtdiUjSpfV1qn8oMBnkFTslKmPo6YWB0CwXfh8MWzjDAQp6oWMY7+iUKha4tnVTYQXfynfxdo1WkkB2fOPdmvs7+ASztNc9W7Y/U0EVL4gqIgebzMZypHw+q+Az0MNBuJe3WMrdmfgnD7/yKD3rLEFKSz30Ezqx/qQ8AVKxRZotdmCu8AA622cKXKQP7wUaGuJZuJee6WjMoZ93mCEIiFFCdMOmOBSHOe7317Nca9UPJZf/t205+Aqj3YXi3kML/XQyWX9sjPpWd4qEzfIxXknA5BfVfmV7RIS3boYGrQphStBakDjt4FxlLm66dzX9kCW67NN5zMh1pcN4D+4e88sRppz6Uprjpf6D2uFy3558F0gZ3jsMaXdMBbJEXe4KzZ8+UKWCwDl6dGQQgdLOWSkiProdk8UwHtCMREVJLnkP9he7Jum3rYsmaYinb2BLlGKgSe+0Gw4tR4Q0AmRtuv2cs8U=----ATTACHMENT:----OTg3NDM3NDg1NDU5MDk0OSA2MTM3MTY0MDY5MjcwMTI4IDQ4NjcyODc4MzA0OTgwNzk=