private function escapeSemicolon($query, $params) {

		preg_match_all('#:((?:[a-zA-Z_])(?:[a-zA-Z0-9-_]+)?)#', $query, $variables);

		if(true === isset($variables[0])) {

			foreach($variables[0] as $index => $variable) {
				
				if(false === array_key_exists($variables[1][$index], $params)) {
					return trigger_error(sprintf('Parameter "%s" missing from parameters', $params[1][$index]), E_USER_ERROR);
				}

				$var = $params[$variables[1][$index]];
					
				switch(gettype($var)) {

					case 'string' : $var = '"' . $this -> escape($var) . '"'; break;
					case 'NULL' : $var = 'NULL'; break;
					default : $var = $this -> escape($var); break;
				}

				$query = str_replace($variables[0][$index], $var, $query);
			}
		}

		return $query;
	}