0
我想使動態SQL GoLang和我似乎無法找到正確的方式來做到這一點。GoLang動態SQL查詢App Engine中
基本上,我只想做:
query := "SELECT id, email, something FROM User"
var paramValues []string
filterString := ""
if userParams.Name != "" {
paramString += " WHERE id = ?"
paramValues = append(paramValues, userParams.Name)
}
if userParams.UserID != "" {
if len(paramString) > 0 {
paramString += " AND"
} else {
paramString += " WHERE"
}
paramString += " email = ?"
paramValues = append(paramValues, userParams.UserID)
}
stmtOut, err := db.Prepare(query + paramString)
err = stmtOut.QueryRow(paramValues).Scan(&id, &email, &something)
相關的building a dynamic query in mysql and golang
我一直無法找到一種可靠的方法可以做到這一點不允許SQL注入。我的上述解決方案的問題是,QueryRow()用不了[]字符串作爲參數。
我想從SQL注入保護,所以fmt.Sprintf並沒有真正解決問題。
這樣我可以允許使用任一ID或電子郵件用戶搜索,我也將使用此邏輯用於與多個可搜索字段不同的對象。
我使用去-SQL驅動程序/ MySQL的