首页 > 解决方案 > db.QueryRow 步骤发生错误

问题描述

当我注册时,db.QueryRow 发生错误并返回

错误 1 ​​服务器无法创建您的帐户。

func signup(w http.ResponseWriter, r *http.Request) {

    if r.Method != "POST" {
        http.ServeFile(w, r, "signup.html")
        return
    }

    username := r.FormValue("username")
    password := r.FormValue("password")
    var user string
    err := db.QueryRow("select username from members where username=?", username).Scan(&user)
    if err != nil {
        http.Error(w, "1 Server error, unable to create your account.", 500)
        return
    }

    switch {
    case err == sql.ErrNoRows:
        hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
        if err != nil {
            http.Error(w, "2 server error, unable to create your account.", 500)
            return
        }
        _, err = db.Exec("insert into members(username, password) values(?,?", username, hashedPassword)
        if err != nil {
            http.Error(w, "3 server error, unable to create your account.", 500)
            return
        }
        w.Write([]byte("User created!"))
        return
    case err != nil:
        http.Error(w, "4 server error, unable to create your account.", 500)
        return
    default:
        http.Redirect(w, r, "/", 301)

    }
}

标签: go

解决方案


推荐阅读