mysql.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * @Descripttion:
  3. * @version:
  4. * @Author: Neo,Huang
  5. * @Date: 2020-10-16 14:29:56
  6. * @LastEditors: Neo,Huang
  7. * @LastEditTime: 2020-11-09 14:11:24
  8. */
  9. package utils
  10. import (
  11. "fmt"
  12. "database/sql"
  13. "log"
  14. // import sql driver
  15. _ "github.com/go-sql-driver/mysql"
  16. )
  17. // 获取数据库handler
  18. var mapMysql = make(map[string]*sql.DB)
  19. // GetMysqlHandler getMysqlHandler
  20. func GetMysqlHandler() (*sql.DB, error) {
  21. var err error
  22. project := GetProject()
  23. if mapMysql[project] != nil {
  24. err = mapMysql[project].Ping()
  25. if err == nil {
  26. return mapMysql[project], nil
  27. }
  28. log.Print("GetMysqlHandler PING:", err)
  29. mapMysql[project].Close()
  30. }
  31. configFile := GetConfigFile()
  32. connString := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", //
  33. GetConf("mysql::user", configFile), GetConf("mysql::password", configFile),
  34. GetConf("mysql::host", configFile), GetConf("mysql::port", configFile), GetConf("mysql::database", configFile))
  35. log.Println("GetMysqlHandler connString:", connString)
  36. mapMysql[project], err = sql.Open("mysql", connString)
  37. if err != nil {
  38. log.Fatal("Open connection failed:", err.Error())
  39. return nil, err
  40. }
  41. err = mapMysql[project].Ping()
  42. if err != nil {
  43. log.Print("PING:", err)
  44. return nil, err
  45. }
  46. return mapMysql[project], nil
  47. }
  48. // 更新玩家状态
  49. func UpdatePlayerStatus(uid int, status int) error {
  50. db, err := GetMysqlHandler()
  51. if err != nil {
  52. log.Println("UpdatePlayerStatus get_mahjong_db, Error: ", err)
  53. return err
  54. }
  55. sql := fmt.Sprintf("UPDATE game_user SET status=%d WHERE uid=%d;", status, uid)
  56. // log.Println("order_insert_db sql:", sql)
  57. _, err = db.Exec(sql)
  58. if err != nil {
  59. log.Println("UpdatePlayerStatus update data Exec Failed, Error: ", err)
  60. return err
  61. }
  62. return nil
  63. }