in reply to string terminator "'"

As many have pointed out, it is the missing ' on the last item in the @url line...

The low-effort way to quote multiple values into an array would be:

@url=qw($url2 $url3 $url4 $url5 $url6 $url7);
This creates a list of the words using any number of whitespace characters as seperator.

But looking at your code I am *very* sure you don't want these guys quoted, as you are comparing the values from @oldrurl with @url, which will never be the same. You'll definitely want to keep these unquoted.

In fact, the lines at the top could be replaced merely by:

@oldurl=$sth->fetchrow;

That's a spacesaver... :) The other one would be instead of all the $url? assignments:

@url = map {$q->param("rurl$_")} (2..7);

Some other tips to help you streamline your code;
use strict; # yes, it'll scare your at first, but it's worth it.
use DBI; # and it's placeholders for your selects and updates instead of interpolating.
use vi! or some other syntax-coloring editor. That would've helped catching the runaway quote...

Happy coding!