gpt4 book ai didi

go - 使用 Go/SQLX 找不到存在的 Struct 属性

转载 作者:行者123 更新时间:2023-12-01 20:27:06 25 4
gpt4 key购买 nike

我正在从文件上传中收集元数据,并插入到数据库表中。结构是这样的:

// file Metadata struct
type MetaData struct {
Owner string
FileRows int64
FileSize string
FileName string
FileUuid string
LastUpdated string
}

这是我如何填充对结构的引用:
metaDataRow := MetaData{
Owner: "Fake Name",
FileRows: (int64)(count - 1),
FileSize: fileSize,
FileName: fileName,
FileUuid: handle,
LastUpdated: time.Now().Format(time.RFC822Z),
}

我的问题是,当我尝试将此 struct ref 插入我的数据库时,我收到一条错误消息:

could not find name Owner in &processor.MetaData{Owner:"Fake Name", FileRows:1499, FileSize:"308.9 kB", FileName:"small-file.csv", FileUuid:"1234567890qwerty", LastUpdated:"30 Jan 20 21:13 +0000"}



现在,我们可以清楚地看到, Owner 存在于结构中,并且它具有一个值,其他的也一样。我不确定查询分配是否在第一次查找时失败并且 panic 在那里,但我无法通过这个来查看其他人是否也失败了。这是我的 sqlx NamedExec,因为我的 Struct 引用或绑定(bind)可能存在问题?
// execute transaction
_, err = tx.NamedExec(`
INSERT INTO file_metadata (
owner,
file_rows,
file_size,
file_name,
file_uuid,
last_updated
) VALUES (
:Owner,
:FileRows,
:FileSize,
:FileName,
:FileUuid,
:LastUpdated
)
`, &metaDataRow)

我希望这是一个简单的修复,边界错字。

最佳答案

您可以添加 db tag到你的结构:

 Owner string `db:"owner"`

然后在插入:
...VALUES (:owner, ....

关于go - 使用 Go/SQLX 找不到存在的 Struct 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60068381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com