golang参数化查询数据库怎么操作
在 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() 方法来获取每一条记录的结果。
需要注意的是,在实际生产环境中,我们应该对参数进行一些验证和过滤,以确保数据的有效性和安全性。
原文地址: https://www.cveoy.top/t/topic/qpZ 著作权归作者所有。请勿转载和采集!