Ya hay algo solucionado, me inserta en base.
tenia al fianlizar la funcion de validacion:
return cerrar();
Borre el return
cerrar();
No me queda muy clara cual es la diferencia, pero funciona
return ¿no significa volver a la funcion?.
Bueno, lo unico que me queda por resolver es el porque no imprime en pantalla el mensaje, y porque a pesar de insertar bien en la base igual el valor de la variable que pasa sigue siendo el mismo. "hola =20"