go - 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)
}
}
解决方案
推荐阅读
- reactjs - 为什么我的主页被设置为特定的 url 而不是通常的“/”?
- r - 运行插入符号模型,它停止了。它提到了重采样性能测量中的缺失值
- java - 如何比较 2 个不同大小的二维数组?
- racket - 任何使用 shift 键修改字母键的 DrRacket 键绑定都不起作用
- html - 无法通过网站访问对象 URL,即使在公开对象/存储桶之后也是如此
- javascript - 如何跟踪一个不起眼的 ueoe angularjs 错误
- vba - VBA、错误处理、堆栈溢出、第二次循环通过后引发的错误
- matlab - 来自非结构数组对象的结构内容引用
- java - 没有适用于 Android 的 Firebase 函数的数据参数
- java - 存在值时的 Flyway 占位符,如果不退出,它将跳过 replaceholder