db.QueryRow() 返回错误数量的参数
本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《db.QueryRow() 返回错误数量的参数》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~
问题内容我有一个名为 user.go
的文件,函数 getuserbyusernameoremail
返回用户模型和错误。它从数据库中获取用户信息。
我的目标是获取用户 select
的所有参数,但它返回的参数比应有的少一个。
这是针对 rest api 的,但模型本身确实是问题所在。用户有字段 user_id
uuid、user_username
string、user_email
string、user_hash
string、user_salt
string、user_verified
bool、zqbcz qbuser_admin 布尔值、user_email_verified
布尔值。
我没有尝试太多,因为我不知道如何继续。然而,为了调试,我创建了 8 个测试变量 test、test2...test8
。我打印了所有 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)
预期:我将 8 个字段扫描到 8 个变量,然后继续我的一天。
实际:2019/11/10 10:36:42 sql:扫描中预期有 7 个目标参数,而不是 8
其他一些注意事项 我确实扫描了 7 个变量来测试,并在记录 7 个变量时得到了这个:
5e5d2f4a-1f5b-418d-a262-a63c719a3ea4 test test@[domain].com [hash] [salt] false false
解决方案
哎呀 - 我错过了 user_salt
和 user_verified
之间的逗号。感谢mkopriva的帮助。
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注编程网公众号,一起学习编程~
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341