Ok, that looks good ... the urls we want are in the $REQUEST array (I normally use $REQUEST which contains both $GET and $POST variables).
So next, try the SQL statement again (with the tablename changed and using $REQUEST rather than $POST).
That is, take out the test code above and replace it with ...
<?php
$sql = "
INSERT INTO `url` (`id`, `url1`, `url2`, `url3`, `url4`)
VALUES (
NULL
, '".$_REQUEST['menu'][0]."'
, '".$_REQUEST['menu'][1]."'
, '".$_REQUEST['menu'][2]."'
, '".$_REQUEST['menu'][3]."'
);
";
echo '<pre>'.$sql.'</pre>';
exit;
?>
... which is just going to print the INSERT SQL to the browser. Check to see if it's valid (paste it back here if you want).
By the way, are you using phpMyAdmin (or some other app) to build your databases?
P