Đó là vì bạn không có biến $ link trong phạm vi hàm. (Có nghĩa là $ link là null) Bạn có thể chuyển tài nguyên kết nối của mình cho hàm của bạn dưới dạng một tham số (là biến $ link trong trường hợp của bạn) hoặc sử dụng toàn cục.
chuyển tài nguyên kết nối dưới dạng tham số sẽ giống như sau:
$link = mysqli_connect("example.com","a","b","c");
function foobar($link){
$sql = 'INSERT INTO `table` (`field1`, `field2`) VALUES ("foo", "bar");';
mysqli_query($link, $sql);
}