anchor.diff:  		var/descmax = ""
   		if(polltype == POLLTYPE_RATING)
   			minval = input("Set minimum rating value.","Minimum rating") as num|null
  -			if(!minval)
  -				return pollid
  +			if(minval)
  +				minval = sanitizeSQL(minval)
  +			else if(minval == null)
  +				return
   			maxval = input("Set maximum rating value.","Maximum rating") as num|null
  -			if(!maxval)
  -				return pollid
  +			if(maxval)
  +				maxval = sanitizeSQL(maxval)
   			if(minval >= maxval)
  -				to_chat(src, "Minimum rating value can't be more than maximum rating value")
  -				return pollid
  +				to_chat(src, "Maximum rating value can't be less than or equal to minimum rating value")
  +				continue
  +			else if(maxval == null)
  +				return
   			descmin = input("Optional: Set description for minimum rating","Minimum rating description") as message|null
   			if(descmin)
   				descmin = sanitizeSQL(descmin)
   			else if(descmin == null)
  -				return pollid
  +				return
   			descmid = input("Optional: Set description for median rating","Median rating description") as message|null
   			if(descmid)
   				descmid = sanitizeSQL(descmid)
   			else if(descmid == null)
  -				return pollid
  +				return
   			descmax = input("Optional: Set description for maximum rating","Maximum rating description") as message|null
   			if(descmax)
   				descmax = sanitizeSQL(descmax)
   			else if(descmax == null)
  -				return pollid
  -		var/datum/DBQuery/query_polladd_option = SSdbcore.NewQuery("INSERT INTO [format_table_name("poll_option")] (pollid, text, percentagecalc, minval, maxval, descmin, descmid, descmax) VALUES ('[pollid]', '[option]', '[percentagecalc]', '[minval]', '[maxval]', '[descmin]', '[descmid]', '[descmax]')")
  -		if(!query_polladd_option.warn_execute())
  -			return pollid
  +				return
  +		sql_option_list += list(list("text" = "'[option]'", "minval" = "'[minval]'", "maxval" = "'[maxval]'", "descmin" = "'[descmin]'", "descmid" = "'[descmid]'", "descmax" = "'[descmax]'"))
   		switch(alert(" ",,"Add option","Finish", "Cancel"))
   			if("Add option")
   				add_option = 1
  
positive.code: 	if(!endtime)
  		return
  	endtime = sanitizeSQL(endtime)
  	var/datum/DBQuery/query_validate_time = SSdbcore.NewQuery("SELECT STR_TO_DATE('[endtime]','%Y-%c-%d %T')")
  	if(!query_validate_time.warn_execute())
  		return
  	if(query_validate_time.NextRow())
  		endtime = query_validate_time.item[1]
  		if(!endtime)
  			to_chat(src, "Datetime entered is invalid.")
  			return
  	var/datum/DBQuery/query_time_later = SSdbcore.NewQuery("SELECT TIMESTAMP('[endtime]') < NOW()")
  	if(!query_time_later.warn_execute())
  		return
  	if(query_time_later.NextRow())
  		var/checklate = text2num(query_time_later.item[1])
  		if(checklate)
  			to_chat(src, "Datetime entered is not later than current server time.")
  			return
  	var/adminonly
  	switch(alert("Admin only poll?",,"Yes","No","Cancel"))
  		if("Yes")
  
negative.code: 	set category = "Special Verbs"
  	if(!check_rights(R_PERMISSIONS))
  		return
  	if(!SSdbcore.Connected())
  		to_chat(src, "<span class='danger'>Failed to establish database connection.</span>")
  		return
  	var/polltype = input("Choose poll type.","Poll Type") in list("Single Option","Text Reply","Rating","Multiple Choice", "Instant Runoff Voting")|null
  	var/choice_amount = 0
  	switch(polltype)
  