@aygumov

Как вытащить поля из запроса в pgx?

Доброго времени суток всем. Есть ли тут кто работал с драйвером pgx в Go? Проблема следующая, методы Query() и QueryRow() возвращают следующую структуру:
spoiler
666d4d26875a8205105043.jpeg

Как мне вытащить с этой структуры запись которая была вставлена в БД? В данном случае это [1 TEST-USER 0 0 0 ].
Документация у pgx я как понял совсем сырая, там даже близко не описывается как вытаскивать поля с запроса.
  • Вопрос задан
  • 112 просмотров
Решения вопроса 2
https://pkg.go.dev/github.com/jackc/pgx
Самый первый пример из верха документации
var name string
var weight int64
err := conn.QueryRow("select name, weight from widgets where id=$1", 42).Scan(&name, &weight)
if err != nil {
    return err
}


Только поля замените на свои

В пятой версии добавились еще другие способы https://pkg.go.dev/github.com/jackc/pgx/v5#hdr-Que...
Ответ написан
Комментировать
Eugene-Usachev
@Eugene-Usachev
struct User {
    id int
    name string
    level int
    currentExp int
    maxExp int
}

var user User

row := ... // Ваш запрос
if err := row.Scan(&user.id, &user.name, &user.level, &user.currentExp, &user.maxExp); err != nil {
    // обработайте ошибку
}

// тут поля у user заполнены


Вы не приложили структуру, поэтому мне пришлось её выдумать. Используйте метод Scan у row. Он принимает ссылки на переменные для вставки значений. Значения вставляет в том порядке, в котором они возвращаются, за этим нужно следить.

Также уберите картинку или спрячьте её в спойлер. Я уже не помню номер правила, но Вы его нарушаете. У некоторых людей слабый интернет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nikonor
@nikonor
Программист go, perl
Я не совсем уверен, что правильно понимаю вопрос, но мне кажется, что вас интересует конструкция returning, но это к sql, а не к pgx
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы