- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想执行这样的查询(使用 MySql):
select * from user where id = 5
Ex 1. 这将返回 err = sql.ErrNoRows
:
err := db.QueryRow("select * from user where ? = ?", f, v).Scan(&user.Id, etc...)
Ex 2. 由于上面的方法不起作用,我正在这样做,它起作用但感觉不对:
err := db.QueryRow("select * from user where "+f+" = ?", v).Scan(&user.Id, etc...)
Ex 中有什么问题? 1? Ex 2. 是一种可以接受的方法吗?
编辑
从评论中的链接我可以用第三种方式来做。
示例 3:
q := fmt.Sprintf("select * from user where %s = ?", f)
err := db.QueryRow(q, v).Scan(&user.Id, etc...)
最佳答案
您需要在 sql 查询中直接提供列名。 “?”符号是您在 sql 字符串之后提供的值的占位符。你的 Ex3。是正确的,但这不是一个好的解决方案,因为它对 SQL 注入(inject)攻击是开放的。
如果您需要一个轻量级的解决方案,您可以为每个表创建一个具有已知列名的映射,例如:userColumns := map[string]bool {"id": true, ...}
和然后只需使用下一个检查:
if userColumns[f] {
...you able to use f in sql...
} else {
...provided value is not one of known columns, it is an error...
}
关于mysql - 具有多个参数的 Golang 数据库/sql.DB.QueryRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194312/
我有一排这样的: 现在我想检索 签到时间和 结帐时间 : 好的,我已经得到了正确的查询。现在通过 Go 代码运行查询: package controllers import ( "absens
我有一个名为user.go的文件,该函数GetUserByUsernameOrEmail返回用户模型和错误。它从数据库中获取此用户信息。 我的目标是获取用户SELECT的所有参数,但返回的参数比应有的
beego Raw().QueryRows()的映射规则是什么这是我使用的结构: type ProcessingNetworkDataProviderConfig struct { Id
我有以下函数应该从我的想法表中检索一行: func (s *IdeaService) GetIdea(id int64) (*ideaservice.Idea, error) { stmt,
请耐心等待,我的 MAPI 知识很少,我的 C++ 技能也很初级...... 我有一个程序,可以使用 MAPI 从 Exchange 服务器读取所有可能的日历约会。除了一种奇怪的情况外,一切都进展顺利
我正在尝试实现一个简单的 POST API 以在 Postgres 数据库中插入数据,如下所示: http://123.123.10.10/checkin?userid=clive&token=123
在 YII 中,使用 queryRow 函数获取单行 $SQL = //SQL QUERY $data = Yii::app()->db->createCommand($SQL); $result =
我想检索该行的所有字段,然后将它们呈现为 html。我知道该怎么做,这里是一个包含 3 个字段的行的代码: type View struct { Id int Name
我试着用beego来进行木板寻呼。 所以我是这样做的, 在控制器中 var articles []*models.Board board.Data["startCount"] = startCount
我想从 sql 数据库中获取一行。我使用以下代码: var name string row := db.Con().QueryRow("SELECT name FROM users WHERE id
我们正在使用一个包含很多字段的用户结构,如下所示: type user struct { ID int `json:"id,omitempty"` UUID
我花了很多时间试图解决这个问题。 我有一个结构: type Token struct { Id *int64 `db:"id"` Email
我想执行这样的查询(使用 MySql): select * from user where id = 5 Ex 1. 这将返回 err = sql.ErrNoRows: err := db.Query
两者之间是否存在显着的性能差异 func (db *DB) Query(query string, args ...interface{}) (*Rows, error) 和 func (db *DB
Go 数据库/sql Postgres 适配器不支持 LastInsertId。 From the docs : pq does not support the LastInsertId() meth
我是一名优秀的程序员,十分优秀!