È perché non hai la variabile $link nell'ambito della funzione. (Significa che $ link è nullo) Puoi passare la tua risorsa di connessione alla tua funzione come parametro (che è $ link variabile nel tuo caso) o utilizzare globale.
il passaggio della risorsa di connessione come parametro sarà come:
$link = mysqli_connect("example.com","a","b","c");
function foobar($link){
$sql = 'INSERT INTO `table` (`field1`, `field2`) VALUES ("foo", "bar");';
mysqli_query($link, $sql);
}