У меня есть файл с именем user.go
, функция GetUserByUsernameOrEmail
возвращает модель пользователя и ошибку. Он получает эту информацию о пользователе из базы данных.
Моя цель - получить все параметры I SELECT
пользователя, но возвращает на единицу меньше, чем следует.
Это для RESTAPI, однако сама модель действительно является проблемой. У пользователя есть поля 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)
Ожидается : я сканирую 8 полей в мои 8 переменных и продолжаю свой день.
Actual : 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