我有一个名为user.go
的文件,函数GetUserByusernameOrEmail
返回用户模型和错误。它从数据库中获取此用户信息。
我的目标是获取用户SELECT
的所有参数,但返回的参数比应有的少。
这是针对REST API的,但是模型本身确实是问题所在。用户具有以下字段:user_id
uuid,user_username
字符串,user_email
字符串,user_hash
字符串,user_salt
字符串,user_verified
bool,{{1} } bool,user_admin
bool。
我没有做太多尝试,因为我不知所措以继续执行步骤。但是,为了调试,我创建了8个测试变量user_email_verified
。我将打印所有8个变量(有关更多信息,请参见下文)。
test,test2...test8
预期:我将8个字段扫描到8个变量中,然后继续进行下去。
实际: var test string
var test2 string
var test3 string
var test4 string
var test5 string
var test6 string
var test7 string
var test8 string
err = db.QueryRow(`
SELECT
user_id,user_username,user_email,user_hash,user_salt
user_verified,user_admin,user_email_verified
FROM users
WHERE user_`+field+`= $1
`,value).Scan(&test,&test2,&test3,&test4,&test5,&test6,&test7,&test8)
需要注意的其他事项 我确实将其扫描到7个变量以进行测试,并在记录7个变量时得到了它:
2019/11/10 10:36:42 sql: expected 7 destination arguments in Scan,not 8