简体   繁体   English

检查用户和密码是否存在并返回 true 或 false

[英]Check if user and password exist and return true or false

I've already created a register system and now i want users to be able to login.我已经创建了一个注册系统,现在我希望用户能够登录。 So i'm trying to create a function to check if the username and password typed are correct, I'm new to programming and i'm struggling to understand how it should be handled.所以我正在尝试创建一个 function 来检查输入的用户名和密码是否正确,我是编程新手,我很难理解应该如何处理它。

I'm using this code:我正在使用这段代码:

func sqlLogin(username string, password string, db *sql.DB) bool{
    result, err := db.Query(fmt.Sprintf("SELECT * FROM `users1` WHERE `username` = '%s' and password = '%s'", username, password))
    if err != nil {
        log.Fatal(err)
        return false
    } else {
        fmt.print(result)
        return true
    }

db.query doesn't return different values with this code even if i use correct vs wrong combination.即使我使用正确与错误的组合,db.query 也不会使用此代码返回不同的值。 How should i handle it?我应该如何处理?

I think you want to change your function to be like this, so that you can catch errors from the query even if they're not related to the login failure.我认为您想将 function 更改为这样,以便您可以从查询中捕获错误,即使它们与登录失败无关。

func sqlLogin(username string, password string, db *sql.DB) (bool, error) {
    result, err := db.Query(fmt.Sprintf("SELECT * FROM `users1` WHERE `username` = '%s' and password = '%s'", username, password))
    if err == sql.ErrNoRows {
        return false, nil
    }
    if err != nil {
        fmt.Println(err)
        return false, err
    }
    fmt.Println(result)
    return true, nil
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM