尝试将哈希值从表单发送到 sqlite 数据库
func Signup(r http.ResponseWriter, w *http.Request) {
w.ParseForm()
email := w.Form.Get("Email")
if !govalidator.IsEmail(email) {
utils.ServerResponse("email is incorrect", "frontend/index.html", r)
return
}
password := w.Form.Get("Password")
hash, err := bcrypt.GenerateFromPassword([]byte("Password"), bcrypt.DefaultCost)
if password == "" || len(password) < 6 {
utils.ServerResponse("Password length must be longer than 6 letters and must contain numbers and uppercase letters", "frontend/index.html", r)
return
}
query := fmt.Sprintf("INSERT INTO User (email, password)", VALUES "email", "hash")
fmt.Println(query, string(hash)) // put this here for debugging
statement , err := db.SqliteDatabase.Prepare(query)
在终端中输出并且没有任何内容提交到数据库:
INSERT INTO User (email, password)
VALUES ("email" , "hash")
%!(EXTRA [email protected], string=21818921) $2a$10$S5DObh/Kwbnl1JMvb.Xzf.Vo9SJsOMDaFugWstf/1xGCPTnZBxr3y
near "%": syntax error
发现我错误地使用了 fmt.Sprintf 函数并修复了它。
query := fmt.Sprintf(`
INSERT INTO User (email, password)
VALUES ("%s" , "%s")
`, email, hash)