我正在使用 Go 开发一个项目。
我正在尝试通过查询 Postgres 数据库来验证用户的会话。当我得到匹配时,我想返回 true,当我没有匹配时,我想返回 false。
问题是,当我没有匹配项时,我的程序会抛出错误。我还不确定如何在 Go 中捕获这些错误,或者是否有更智能的方法来运行查询。
func confirmUser(userID string, session string) bool {
sqlStatement := `SELECT u.id FROM users u INNER JOIN user_sessions s ON u.id = s.userid WHERE u.id = $1 AND s.session = $2`
id := 0
err := db.QueryRow(sqlStatement, userID, session).Scan(&id)
if err != nil {
panic(err)
return false
}
fmt.Println("Found:", id)
return true
}
我的 db 变量是全局变量,因为我在很多地方使用它。我认为问题出在.Scan()电话上,但我不确定有更好的方法来解决这个问题。在 PHP 中,我将检查请求是否已成功发送,然后检查返回的行数。我还不知道如何在 Go 中做同样的事情。
皈依舞
一只名叫tom的猫
相关分类