protected function bindParameter(PDOStatement $statement, int $key, $value): void
	{
		if(is_string($value))
		{
			$type = PDO::PARAM_STR;
		}
		elseif(is_int($value))
		{
			$type = PDO::PARAM_INT;
		}
		elseif(is_bool($value))
		{
			$type = PDO::PARAM_BOOL;
		}
		elseif(is_null($value))
		{
			$type = PDO::PARAM_NULL;
		}
		elseif(is_object($value) && $value instanceof TypeInterface)
		{
			$value = $value->getValue();

			$type = $value->getType();
		}
		elseif(is_resource($value))
		{
			$type = PDO::PARAM_LOB;
		}
		else
		{
			$type = PDO::PARAM_STR;
		}

		$statement->bindValue($key + 1, $value, $type);
	}