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

问题描述 投票:0回答:1

我有一个名为user.go的文件,函数GetUserByUsernameOrEmail返回用户模型和错误。它从数据库中获取此用户信息。

我的目标是获取用户的所有参数I SELECT,但返回的参数比应有的少。

这是针对REST API的,但是模型本身确实是问题。用户具有字段user_id uuid,user_username字符串,user_email字符串,user_hash字符串,user_salt字符串,user_verified bool,user_admin bool和user_email_verified bool。

我没有做太多尝试,因为我无所适从,无法继续执行步骤。为了调试,我创建了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)

Expected:我将8个字段扫描到8个变量中,然后继续进行下去。实际2019/11/10 10:36:42 sql: expected 7 destination arguments in Scan, not 8

其他注意事项我确实将其扫描到7个变量进行测试,并在记录7个变量时得到了此信息:

5e5d2f4a-1f5b-418d-a262-a63c719a3ea4 test test@[domain].com [hash] [salt] false false
postgresql go libpq
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.