作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了简化代码,并防止一次又一次地传递相似的参数,我为以下某些结构创建了Put
方法。
例如,此处未使用UID
的原因是因为UID
被设置为自动增加值。
type User struct {
UID int
Name string
Username string
Password string
}
func (user *User) Put(db *sql.DB, query string) (sql.Result, error) {
return db.Exec(query, u.UID, u.Name, u.Username, u.Password)
}
func main() {
db := ...
u := &User{...}
u.Put(db, `INSERT INTO user(name, username, password) VALUES ($2, $3, $4);`)
}
但我得到下面的错误
pq: could not determine data type of parameter $1
(SQL驱动程序为
https://github.com/lib/pq)
最佳答案
在查询中$2, $3...$N
是作为额外参数传递给db.Exec()
的参数的索引,它们必须从$1
开始(如果使用database/sql
包)。
我认为在您的情况下,您可以更改Put
方法签名(添加struct values extractor
)
func (user *User) Put(db *sql.DB, query string, extractor func(user User)[]interface{}) (sql.Result, error) {
return db.Exec(query, extractor(*user)...)
}
并使用像
u.Put(db,`INSERT INTO user(name, username, password) VALUES ($1, $2, $3);`, func(u User) []interface{} {
return []interface{}{u.Name, u.Username, u.Password}
})
关于postgresql - 将足够多的参数传递给lib/pq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66148359/
对于我的问题,我找不到更好的措辞。 在我的应用程序中的某个时刻,我设置了一些非常密集的动画。问题是,在高端设备上,动画运行流畅且赏心悦目。另一方面,我测试过的一台低端设备在制作动画时表现非常糟糕。 试
我正在修补 OTP 模块 ( yubico_pam ),并尝试访问管理员选择的控制标志(例如必需,足够, ETC)。 有什么想法吗?这是否可行(无需解析文件)? 最佳答案 无法在 API 中查询此信息
我有一些为 Linux 编写的 C 代码,依赖于套接字和 arpa/inet.h 以及 libusb.h,我想在 MinGW 下为 Windows 编译它。 (请注意,当前项目只有一个非常简单的 Ma
我是一名优秀的程序员,十分优秀!