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

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

在“Name= ?”附近使用的正確語法

在“Name= ?”附近使用的正確語法

Go
梵蒂岡之花 2023-07-04 14:48:16
我正在嘗試使用“名稱”參數(shù)過濾我的寄存器。我制作了這個處理函數(shù):func GetFuncionaries(w http.ResponseWriter, r *http.Request) {    var f model.Funcionary    var t util.App    var d db.DB    err := d.Connection()    db := d.DB    defer db.Close()    Id, _ := strconv.Atoi(r.FormValue("Id"))    Name:= r.FormValue("Name")    f.Id = int64(Id)    f.Name = Name    funcionaries, err := f.GetFuncionaries(db)    if err != nil {            log.Printf("[handler/GetFuncionaries-  Error: %s", err.Error())            t.ResponseWithError(w, http.StatusInternalServerError, err.Error(), "")        }        return    }    t.ResponseWithJSON(w, http.StatusOK, funcionaries, 0, 0)}以及功能模型:func (f *Funcionary) GetFuncionaries(db *sql.DB) ([]Funcionary, error) {    var values []interface{}    var where []string    if f.Name != "" {        where = append(where, "Name= ?")        values = append(values, f.Name)    }    rows, err := db.Query(`SELECT Id, Data, Role, Name                    FROM funcionaries                    WHERE 1=1 `+strings.Join(where, " AND "), values...)    if err != nil {        return nil, err    }    funcionaries:= []Funcionary{}    defer rows.Close()    for rows.Next() {        var funcionary Funcionary        if err = rows.Scan(&funcionario.Id, &funcionario.Name, &Others...); err != nil {            return nil, err        }        funcionaries = append(funcionaries, funcionary)    }    return funcionaries, nil}但是當我在郵遞員中撥打電話時,例如:http://localhost:8000/api/funcionaries?Name=a我收到錯誤:您的 SQL 語法有錯誤;檢查與您的 MySQL 服務(wù)器版本相對應(yīng)的手冊,了解在“Name= ?”附近使用的正確語法 在第 3 行”,我忘記了什么?
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經(jīng)驗 獲得超4個贊

在我看來,你的代碼生成的 SQL 字符串將是


SELECT Id, Data, Role, Name FROM funcionaries WHERE 1=1 Name= ?

而你想要的是:


SELECT Id, Data, Role, Name FROM funcionaries WHERE 1=1 AND Name= ?

為此,您可以像這樣修改代碼:


q := `SELECT Id, Data, Role, Name

          FROM funcionaries

          WHERE True`

if len(where) != 0 {

    q = q + " AND " + strings.Join(where, " AND ")

}

rows, err := db.Query(q, values...)


查看完整回答
反對 回復(fù) 2023-07-04
  • 1 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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