Ответ
Возможные причины:
- Нет соединения - проверь
db.Ping(), настройки подключения - Неправильный запрос - SQL синтаксис, имя таблицы/колонок
- Нет данных - запрос вернул 0 строк, используй
rows.Next() - Ошибка сканирования - несоответствие типов при
Scan() - Контекст отменен -
context.Timeoutили ручнойcancel() - Транзакция не закоммичена - забыт
tx.Commit()
Пример:
var name string
err := db.QueryRow("SELECT name FROM users WHERE id=1").Scan(&name)
if err != nil {
if err == sql.ErrNoRows {
// Нет данных
} else {
// Другая ошибка
}
}