tienes que revisar la estrucutura de la base de datos puede que estes tratando de insertar en un campo que no exista, o que tenga otro tipo de datos
seria bueno que lo hicieras asi:
Código PHP:
function nuevoMedico($dni,$nombre,$apel1,$apel2,$dir,$mail, $tlf,$esp)
{
$query ="insert into medicos (dni, nombre, apellido1, apellido2, mail, dir, tlf, nose, espacio) values ($dni,$nombre,$apel1,$apel2,$mail,$dir,$tlf,0,$esp )";
echo $query;
mysql_select_db($this->bd, $this->conexion);
$result = mysql_query($query,$this->conexion)or
die ("error en actualizacion base de datos ".mysql_error());
}
de esta forma te podras dar una idea mejor de que es lo que estas haciendo y donde estas insertando
me explique bien?