Dzieje się tak, ponieważ nie masz zmiennej $link w zakresie funkcji. (Oznacza to, że $link is null)Możesz przekazać zasób połączenia do swojej funkcji jako parametr (którym jest zmienna $link w twoim przypadku) lub użyć globalnego.
przekazanie zasobu połączenia jako parametru będzie wyglądać tak:
$link = mysqli_connect("example.com","a","b","c");
function foobar($link){
$sql = 'INSERT INTO `table` (`field1`, `field2`) VALUES ("foo", "bar");';
mysqli_query($link, $sql);
}