Claro es porque no te está cogiendo la variable $link.
Supongo que la gente mete en las consultas la conexión porque habá algún maldito tutorial que lo pone así xD (Se suele ver mucho)
Pero es totalmente innecesario.
Edito y te pongo un ejemplo.
conexion.php
Código PHP:
$conexion = mysql_connect("***","***","***") or die ( "No se ha podido establecer la conexión con el servidor");
mysql_select_db("nombreBD",$conexion);
Tú pagina:
Código PHP:
require_once('conexion.php');
function insertDatos($dato1,$dato2,$dato3){
$insert = mysql_query("INSERT INTO tabla VALUES ($dato1,$dato2,$dato3)")
or die(mysql_error());
return $insert;
}
$insertar = insertDatos('dato1', 'dato2', 'dato3');
Fíjate que no se le añade un segundo parámentro al mysql_query, sólo la consulta.
De todas formas yo prefiero hacerlo con una clase y con php en modo objeto y limpiando memoria y cerrando la conexión, pero eso debería servirte.