db.QueryRow()返回错误数量的参数

我有一个名为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
haijun110120 回答:db.QueryRow()返回错误数量的参数

糟糕-我错过了user_saltuser_verified之间的逗号。感谢mkopriva的帮助。

本文链接:https://www.f2er.com/3127971.html

大家都在问