第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 db.Query 中使用 bindvars 獲得不同的結(jié)果

在 db.Query 中使用 bindvars 獲得不同的結(jié)果

Go
湖上湖 2022-12-26 16:39:33
去版本:18.3 github.com/go-sql-driver/mysql v1.6.0當(dāng)查詢字符串是 db.Query("SELECT * FROM logs ORDER BY log_id DESC LIMIT 1,3 ")如果 log_id == 8b, _ := rawValue.([]byte)下面是vscode的調(diào)試信息,b是正確的b: []uint8 len:1,cap 1,[56] ; 字符串():“8”當(dāng)我使用 db.Query("SELECT * FROM logs ORDER BY log_id DESC LIMIT ?,? ", 1,3)如果 log_id == 8在b, _ := rawValue.([]byte)信息是b: []uint8 only :0 ,cap:0 ,nil原始值8不是56和 user(string) 在兩者中都運(yùn)行良好。我的 SQL 架構(gòu)CREATE TABLE logs (    `log_id` INT(6) NOT NULL AUTO_INCREMENT,   `user` VARCHAR(10),  PRIMARY KEY(log_id)      );代碼    db, _:= sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/log")    rows, _ := db.Query("SELECT * FROM logs ORDER BY log_id DESC LIMIT ?,? ", 1, 3)    col, _ := rows.Columns()    defer rows.Close()    count := len(col)    values := make([]interface{}, count)    for i := range values {        var ii interface{}        values[i] = &ii    }    ret := make([]map[string]interface{}, 0)    fmt.Println("Reading data:")    for rows.Next() {        _ = rows.Scan(values...)        m := make(map[string]interface{}, 0)        for i, colname := range col {            rawValue := *(values[i].(*interface{}))            b, _ := rawValue.([]byte)            if colname == "log_id" {                v, _ := strconv.Atoi(string(b))                m[colname] = v            } else if colname == "log_msg_id" {                v, _ := strconv.Atoi(string(b))                m[colname] = v            } else {                v := string(b)                m[colname] = v            }        }
查看完整描述

1 回答

?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

為什么不把值掃描成這樣的結(jié)構(gòu):


type Log struct {

        ID   int64

        Name string

    }


    db, _ := sql.Open("mysql", "root:passwd@tcp(127.0.0.1:3306)/log")

    rows, err := db.Query("SELECT * FROM logs ORDER BY log_id DESC LIMIT ?,? ", 1, 3)

    if err != nil {

        fmt.Println(err)

    }


    defer rows.Close()

    var values []Log


    fmt.Println("Reading data:")

    for rows.Next() {

        var log Log

        err = rows.Scan(&log.ID, &log.Name)

        if err != nil {

            fmt.Println(err)

            continue // you need to handle error

        }


        values = append(values, log)

    }

    fmt.Println(values)


查看完整回答
反對(duì) 回復(fù) 2022-12-26
  • 1 回答
  • 0 關(guān)注
  • 88 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)