| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package tool
- import (
- "database/sql"
- "encoding/json"
- "log"
- "strings"
- _ "github.com/go-sql-driver/mysql"
- _ "modernc.org/sqlite"
- )
- func Temp_DB_connect() *sql.DB {
- db, err := sql.Open("sqlite", "./data/temp.db")
- if err != nil {
- log.Fatal(err)
- }
- return db
- }
- func DB_connect() *sql.DB {
- m_db := Temp_DB_connect()
- defer m_db.Close()
- var db_set_str string
- err := m_db.QueryRow("select data from temp where name = 'db_set'").Scan(&db_set_str)
- if err != nil {
- if err == sql.ErrNoRows {
- db_set_str = "{}"
- } else {
- log.Fatal(err)
- }
- }
- db_set := map[string]string{}
- json.Unmarshal([]byte(db_set_str), &db_set)
- if db_set["type"] == "sqlite" {
- db, err := sql.Open("sqlite", db_set["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"])
- if err != nil {
- log.Fatal(err)
- }
- return db
- }
- }
- func DB_change(data string) string {
- m_db := Temp_DB_connect()
- defer m_db.Close()
- var db_set_type string
- err := m_db.QueryRow("select data from temp where name = 'db_set_type'").Scan(&db_set_type)
- if err != nil {
- if err == sql.ErrNoRows {
- db_set_type = "sqlite"
- } else {
- log.Fatal(err)
- }
- }
- if db_set_type == "mysql" {
- data = strings.Replace(data, "random()", "rand()", -1)
- data = strings.Replace(data, "collate nocase", "collate utf8mb4_general_ci", -1)
- }
- return data
- }
|