Bladeren bron

db_set 불러올 때 json.loads 안 쓰도록

잉여개발기 (SPDV) 2 jaren geleden
bovenliggende
commit
e0c35a9d5f

+ 1 - 1
route/main_setting_main.py

@@ -108,7 +108,7 @@ def main_setting_main():
             with class_temp_db() as m_conn:
                 m_curs = m_conn.cursor()
 
-                m_curs.execute('select data from temp where name = "db_set_type"')
+                m_curs.execute('select data from temp where name = "db_type"')
                 db_data = m_curs.fetchall()
                 set_data = db_data[0][0] if db_data else 'sqlite'
 

+ 21 - 12
route/tool/func.py

@@ -111,8 +111,8 @@ def do_db_set(db_set):
         m_curs.execute('drop table if exists temp')
         m_curs.execute('create table if not exists temp(name text, data text)')
 
-        m_curs.execute('insert into temp (name, data) values ("db_set", ?)', [json.dumps(db_set)])
-        m_curs.execute('insert into temp (name, data) values ("db_set_type", ?)', [db_set['type']])
+        for for_a in db_set:
+            m_curs.execute('insert into temp (name, data) values (?, ?)', ['db_' + for_a, db_set[for_a]])
     
 # Func-init
 def get_init_set_list(need = 'all'):
@@ -153,32 +153,41 @@ class get_db_connect:
         with class_temp_db() as m_conn:
             m_curs = m_conn.cursor()
 
-            m_curs.execute('select data from temp where name = "db_set"')
+            self.db_set = {}
+
+            m_curs.execute('select name, data from temp where name in ("db_type", "db_name")')
             db_data = m_curs.fetchall()
-            self.db_set = json.loads(db_data[0][0]) if db_data else {}
+            for for_a in db_data:
+                self.db_set[for_a[0]] = for_a[1]
 
             if db_type != '':
-                self.db_set['type'] = db_type
+                self.db_set['db_type'] = db_type
+
+            if db_type == 'mysql':
+                m_curs.execute('select name, data from temp where name in ("db_mysql_host", "db_mysql_user", "db_mysql_pw", "db_mysql_port")')
+                db_data = m_curs.fetchall()
+                for for_a in db_data:
+                    self.db_set[for_a[0]] = for_a[1]
         
     def __enter__(self):
-        if self.db_set['type'] == 'sqlite':
+        if self.db_set['db_type'] == 'sqlite':
             self.conn = sqlite3.connect(
-                self.db_set['name'] + '.db',
+                self.db_set['db_name'] + '.db',
                 check_same_thread = False,
                 isolation_level = None
             )
         else:
             self.conn = pymysql.connect(
-                host = self.db_set['mysql_host'],
-                user = self.db_set['mysql_user'],
-                password = self.db_set['mysql_pw'],
+                host = self.db_set['db_mysql_host'],
+                user = self.db_set['db_mysql_user'],
+                password = self.db_set['db_mysql_pw'],
                 charset = 'utf8mb4',
-                port = int(self.db_set['mysql_port']),
+                port = int(self.db_set['db_mysql_port']),
                 autocommit = True
             )
 
             try:
-                self.conn.select_db(self.db_set['name'])
+                self.conn.select_db(self.db_set['db_name'])
             except:
                 pass
 

+ 1 - 1
route/tool/func_tool.py

@@ -33,7 +33,7 @@ def db_change(data):
     with class_temp_db() as m_conn:
         m_curs = m_conn.cursor()
         
-        m_curs.execute('select data from temp where name = "db_set_type"')
+        m_curs.execute('select data from temp where name = "db_type"')
         db_data = m_curs.fetchall()
         set_data = db_data[0][0] if db_data else 'sqlite'
 

BIN
route_go/bin/main.amd64.bin


BIN
route_go/bin/main.amd64.exe


BIN
route_go/bin/main.arm64.bin


BIN
route_go/bin/main.arm64.exe


+ 36 - 13
route_go/route/tool/db_connect.go

@@ -2,7 +2,6 @@ package tool
 
 import (
 	"database/sql"
-	"encoding/json"
 	"log"
 	"strings"
 
@@ -23,29 +22,53 @@ func DB_connect() *sql.DB {
 	m_db := Temp_DB_connect()
 	defer m_db.Close()
 
-	var db_set_str string
+	db_set := map[string]string{}
 
-	err := m_db.QueryRow("select data from temp where name = 'db_set'").Scan(&db_set_str)
+	rows, err := m_db.Query("select name, data from temp where name in ('db_name', 'db_type')")
 	if err != nil {
-		if err == sql.ErrNoRows {
-			db_set_str = "{}"
-		} else {
+		log.Fatal(err)
+	}
+	defer rows.Close()
+
+	for rows.Next() {
+		var name string
+		var data string
+
+		err := rows.Scan(&name, &data)
+		if err != nil {
 			log.Fatal(err)
 		}
-	}
 
-	db_set := map[string]string{}
-	json.Unmarshal([]byte(db_set_str), &db_set)
+		db_set[name] = data
+	}
 
-	if db_set["type"] == "sqlite" {
-		db, err := sql.Open("sqlite", db_set["name"]+".db")
+	if db_set["db_type"] == "sqlite" {
+		db, err := sql.Open("sqlite", db_set["db_name"]+".db")
 		if err != nil {
 			log.Fatal(err)
 		}
 
 		return db
 	} else {
-		db, err := sql.Open("mysql", db_set["mysql_user"]+":"+db_set["mysql_pw"]+"@tcp("+db_set["mysql_host"]+":"+db_set["mysql_port"]+")/"+db_set["name"])
+		rows, err := m_db.Query("select name, data from temp where name in ('db_mysql_host', 'db_mysql_user', 'db_mysql_pw', 'db_mysql_port')")
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer rows.Close()
+
+		for rows.Next() {
+			var name string
+			var data string
+
+			err := rows.Scan(&name, &data)
+			if err != nil {
+				log.Fatal(err)
+			}
+
+			db_set[name] = data
+		}
+
+		db, err := sql.Open("mysql", db_set["db_mysql_user"]+":"+db_set["db_mysql_pw"]+"@tcp("+db_set["db_mysql_host"]+":"+db_set["db_mysql_port"]+")/"+db_set["db_name"])
 		if err != nil {
 			log.Fatal(err)
 		}
@@ -60,7 +83,7 @@ func DB_change(data string) string {
 
 	var db_set_type string
 
-	err := m_db.QueryRow("select data from temp where name = 'db_set_type'").Scan(&db_set_type)
+	err := m_db.QueryRow("select data from temp where name = 'db_type'").Scan(&db_set_type)
 	if err != nil {
 		if err == sql.ErrNoRows {
 			db_set_type = "sqlite"

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.5.0-v140",
+        "r_ver" : "v3.5.0-v141",
         "c_ver" : "20240513",
         "s_ver" : "20240426"
     }