func (s *IdeaService) GetIdea(id int64) (*ideaservice.Idea, error) {
stmt, err := s.DB.Prepare("SELECT id, name, description, created_on, last_updated FROM ideas WHERE id = $1")
if err != nil {
return nil, err
}
defer stmt.Close()
var idea *ideaservice.Idea
err = stmt.QueryRow(id).Scan(&idea.ID, &idea.Name, &idea.Description, &idea.CreatedOn, &idea.LastUpdated)
return idea, err
}
Не могли бы вы заменить $1
на ?
и посмотреть, работает ли он? В stmt.QueryRow
вы передаете id
. Например:
stmt, err := s.DB.Prepare("SELECT id, name, description, created_on, last_updated FROM ideas WHERE id = ?")
Если это не сработает, добавьте этот блок:
switch {
case err == sql.ErrNoRows:
log.Fatalf("no user with id %d", id)
case err != nil:
log.Fatal(err)
default:
log.Println("ok!")
}
ОБНОВЛЕНИЕ: Не видел комментариев к вопросу. Да, он тоже прав. Также исправьте их.
И проверьте, где находится err
(в этом случае).