在 Go 语言中,使用参数化查询可以防止 SQL 注入攻击,并且可以提高查询效率。下面是一个简单的示例:

import (
    "database/sql"
    "fmt"
)

func QueryDB(db *sql.DB, name string) error {
    rows, err := db.Query("SELECT * FROM users WHERE name = ?", name)
    if err != nil {
        return err
    }
    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        err := rows.Scan(&id, &name)
        if err != nil {
            return err
        }
        fmt.Printf("id=%d name=%s\n", id, name)
    }

    return nil
}

在这个例子中,我们使用了 db.Query() 方法来执行一个参数化查询。参数 "?" 表示我们要传递一个参数,这个参数将会被转义并且安全地嵌入 SQL 查询语句中。在查询完成后,我们通过 rows.Scan() 方法来获取每一条记录的结果。

需要注意的是,在实际生产环境中,我们应该对参数进行一些验证和过滤,以确保数据的有效性和安全性。

golang参数化查询数据库怎么操作

原文地址: https://www.cveoy.top/t/topic/qpZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录