用Go语言写一个 注册 登录函数 要求在登录时将用户输入的用户名和密码与注册时保存在数据库中的信息进行比较,若相同则返回登录成功,不同则返回用户名或密码错误
时间: 2024-05-15 10:12:14 浏览: 5
假设你已经安装好了Go语言的开发环境,并且已经连接了数据库。以下是一个简单的注册和登录函数实现:
```go
package main
import (
"database/sql"
"fmt"
"log"
)
func register(db *sql.DB, username string, password string) error {
_, err := db.Exec("INSERT INTO users (username, password) VALUES (?, ?)", username, password)
if err != nil {
return err
}
return nil
}
func login(db *sql.DB, username string, password string) error {
var storedPassword string
err := db.QueryRow("SELECT password FROM users WHERE username=?", username).Scan(&storedPassword)
if err != nil {
return err
}
if storedPassword != password {
return fmt.Errorf("Incorrect username or password")
}
return nil
}
func main() {
// 连接数据库
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/database")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 注册新用户
err = register(db, "user1", "password1")
if err != nil {
log.Fatal(err)
}
// 登录
err = login(db, "user1", "password1")
if err != nil {
log.Fatal(err)
} else {
fmt.Println("Login successful!")
}
}
```
在上面的代码中,我们定义了两个函数:`register` 和 `login`。`register` 函数将用户名和密码插入到数据库中,`login` 函数从数据库中查询用户密码并将其与输入的密码进行比较。如果密码匹配,则登录成功,否则返回错误。在 `main` 函数中,我们连接到数据库,注册一个新用户(用户名为 "user1",密码为 "password1"),然后通过调用 `login` 函数进行登录。
请注意,上面的代码仅供参考,具体实现可能因数据库类型和连接方式而有所不同。