亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang:Mysql Prepare Insert 語句不會將行添加到 db 表中

Golang:Mysql Prepare Insert 語句不會將行添加到 db 表中

Go
喵喔喔 2021-10-11 13:35:06
所以我試圖使用 mysql 驅動程序將數據插入數據庫。具體來說,我正在使用這個:"github.com/go-sql-driver/mysql"這是我的代碼func main() {    db, err := sql.Open("mysql", "psanker:123@/education_data")    err = db.Ping()    if err != nil {        fmt.Println("Failed to prepare connection to database")        log.Fatal("Error:", err.Error())    }    defer db.Close()    content, err := ioutil.ReadFile("activities.csv")    lines := strings.Split(string(content), "\r")    //only work so long as I have one district    rows, err := db.Query("SELECT id FROM districts")    var districtId int    defer rows.Close()    for rows.Next() {        err := rows.Scan(&districtId)        check(err)    }    for i, line := range lines {        if i > 1 {            splitStr := strings.Split(line, ",")            var activityCode string            if strings.Contains(splitStr[0], "-") {                //this is an activity                activityCode = splitStr[0]                stmt1, _ := db.Prepare("INSERT INTO activities(code) VALUES(?)")                stmt2, _ := db.Prepare("INSERT INTO activities(name) VALUES(?)")                res, _ := stmt1.Exec(splitStr[0])                stmt2.Exec(splitStr[1])            } else {                //this is a sub activity                stmt1, _ := db.Prepare("INSERT INTO sub_activities(code) VALUES(?)")                stmt2, _ := db.Prepare("INSERT INTO sub_activities(name) VALUES(?)")                stmt1.Exec(splitStr[0])                stmt2.Exec(splitStr[1])                if activityCode != "" {                    rows, _ := db.Query("SELECT id from activities where code = ?", activityCode)                    var activityId int                    for rows.Next()                 }            }        }    }}當我檢查 Mysql 數據庫時,表中沒有插入任何行。我想我正在訪問正確的數據庫,因為從地區獲取 id 的初始查詢返回 1,這是正確的。這是怎么回事?編輯我已經通過這樣做確認我在正確的數據庫中rows, err = db.Query("SELECT DATABASE();")var test stringfor rows.Next() {    rows.Scan(&test)    fmt.Println(test)}哪個打印出來 education_data
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 361 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號