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:----IM3BaPmln2ucptmQ/AhNgY4+wvsnG4TGD0j1Ig5XWKBxEpsq7nbJYP5bzxxz9ITT3BrzD5kaBd7K/kEaMCnIMzjp8oNOoLj+NuAEYnV7iWl6tdXagYa9uxBULDWU2QXUcI20PNUm/58EpUP9WJDbYMaXXq0CYDFibc7gvjpDpoqqERpYkzODd2MGa12zcix2d1F2ffvCbIr04XjWRifCVpUdLaQQ5LaM+YA3Ox+GoY1RmWDXbQ1yPugO7wQsuva9SaibQUQF25A8OJYixm8/JPKdcDf+YGiUxKtH8oZezX/dA3HBQ2aEnGxgDYO5s0+saxMTN43m5cccXEkbPUO4vyekhaob04ZaD4F0YU6UmZ+C9fBLtDI/1GYkkquD6Nk1Vyze8YsKBNz24VxfN94cJwS3XwpLjiONAqVJMeuGWusxycbm9ujoaghwzSAZSRtwQxJjxptM5jL71kU9ny2O294WEKgK9y4IP9HbWlWzuVGllY5Cst3qTtj4clqzDhslYJDqXaBao4EF37/uwgQES2L+OugSoArkWXeqg821+nYEXBUq6ryFY5z7p1Sn5/upfwcg7f1zqXpSG+Y4rwvvPq1itKdtqgsQIkAVr2Abv2SChbmG9g7/lqJBnZxfpTEK10kFniu6sUIfOb236BmSpScbwHXTXFL6xKMQm6MzpaY=----ATTACHMENT:----NDk4OTA4NzU5MjA1MjE0IDM2NDA5MjQ4MTU3NzkwNzggMTAyMzk3Mzk3MjA5NDEyOA==