action_mysql.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package actions
  2. import (
  3. "database/sql"
  4. "fmt"
  5. _ "github.com/go-sql-driver/mysql"
  6. utils "golang-fave/engine/wrapper/utils"
  7. )
  8. func action_mysql(e *Action) {
  9. pf_host := e.R.FormValue("host")
  10. pf_name := e.R.FormValue("name")
  11. pf_user := e.R.FormValue("user")
  12. pf_password := e.R.FormValue("password")
  13. if pf_host == "" {
  14. e.msg_error(`Please specify host for mysql connection`)
  15. return
  16. }
  17. if pf_name == "" {
  18. e.msg_error(`Please specify mysql database name`)
  19. return
  20. }
  21. if pf_user == "" {
  22. e.msg_error(`Please specify mysql user`)
  23. return
  24. }
  25. // Try connect to mysql
  26. db, err := sql.Open("mysql", pf_user+":"+pf_password+"@tcp("+pf_host+":3306)/"+pf_name)
  27. if err != nil {
  28. e.msg_error(err.Error())
  29. return
  30. }
  31. defer db.Close()
  32. err = db.Ping()
  33. if err != nil {
  34. e.msg_error(err.Error())
  35. return
  36. }
  37. // Try to install all tables
  38. // Save mysql config file
  39. err = utils.MySqlConfigWrite(e.VHostHome, pf_host, pf_name, pf_user, pf_password)
  40. if err != nil {
  41. e.msg_error(err.Error())
  42. return
  43. }
  44. // Reload current page
  45. e.write(fmt.Sprintf(`window.location.reload(false);`))
  46. }