C'est parce que vous n'avez pas de variable $link dans la portée de la fonction. (Ce qui signifie que $link est nul) Vous pouvez transmettre votre ressource de connexion à votre fonction en tant que paramètre (qui est la variable $link dans votre cas) ou utiliser global.
passer la ressource de connexion en paramètre ressemblera à :
$link = mysqli_connect("example.com","a","b","c");
function foobar($link){
$sql = 'INSERT INTO `table` (`field1`, `field2`) VALUES ("foo", "bar");';
mysqli_query($link, $sql);
}