	public function remove($key)
	{
		$closed = false;
		if (! $this->started) {
			$closed = true;
			$this->start();
		}

		list($cat, $name) = array_pad(explode('.', $key, 2), 2, null);
		if (is_null($name)) {
			if (! isset($this->keys[$cat])) {
				$name = $cat;
				$cat = 'default';
			}
		}
		if (isset($this->keys[$cat])) {
			$cat = $this->keys[$cat];
		} else {
			$name = $cat . '.' . $name;
			$cat = $this->keys['default'];
		}
		if (is_null($name)) {
			unset($_SESSION[$cat]);
		} else {
			if (isset($_SESSION[$cat]) && is_array($_SESSION[$cat])) {
				unset($_SESSION[$cat][$name]);
			}
		}

		if ($closed) {
			$this->close();
		}
		
		return $this;
	}
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.