Преглед на файлове

新增数据库连接工具

neo преди 1 година
родител
ревизия
d55b283574
променени са 4 файла, в които са добавени 100 реда и са изтрити 3 реда
  1. 8 1
      conf/ali-test/cfg_test.conf
  2. 8 1
      conf/neo-mac/cfg_test.conf
  3. 8 1
      conf/neo-win/cfg_test.conf
  4. 76 0
      utils/mysql.go

+ 8 - 1
conf/ali-test/cfg_test.conf

@@ -19,4 +19,11 @@ auth_0=aGMtbmVvLWRldi0yMDIzMDQwNw==
19 19
 
20 20
 host_account=127.0.0.1
21 21
 port_account=6381
22
-auth_account=aGMtbmVvLWRldi0yMDIzMDQwNw==
22
+auth_account=aGMtbmVvLWRldi0yMDIzMDQwNw==
23
+
24
+[mysql-game]
25
+host=127.0.0.1
26
+port=3306
27
+database=box
28
+user=neo
29
+password=aGMtbmVvLWRldi0yMDIzMDQwNw==

+ 8 - 1
conf/neo-mac/cfg_test.conf

@@ -19,4 +19,11 @@ auth_0=mCWJVNNBP7_jiami
19 19
 
20 20
 host_account=127.0.0.1
21 21
 port_account=6381
22
-auth_account=mCWJVNNBP7_jiami
22
+auth_account=mCWJVNNBP7_jiami
23
+
24
+[mysql-game]
25
+host=127.0.0.1
26
+port=3306
27
+database=box
28
+user=root
29
+password=mCWJVNNBP7_jiami

+ 8 - 1
conf/neo-win/cfg_test.conf

@@ -19,4 +19,11 @@ auth_0=aGMtbmVvLWRldi0yMDIzMDQwNw==
19 19
 
20 20
 host_account=127.0.0.1
21 21
 port_account=6381
22
-auth_account=aGMtbmVvLWRldi0yMDIzMDQwNw==
22
+auth_account=aGMtbmVvLWRldi0yMDIzMDQwNw==
23
+
24
+[mysql-game]
25
+host=127.0.0.1
26
+port=3306
27
+database=box
28
+user=neo
29
+password=aGMtbmVvLWRldi0yMDIzMDQwNw==

+ 76 - 0
utils/mysql.go

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