@vGrabko99
html, css, js, php, golang, mysql

Как получить значение с бд?

Использую https://github.com/jinzhu/gorm
Вот код
func templateAuth(w http.ResponseWriter, r *http.Request) {
	vars := mux.Vars(r)
	row := db.Table("use_api").Where("api_key  = ?", vars["keyApi"]).Select("salt").Row()

	h := md5.New()
	io.WriteString(h, vars["keyApi"])
	io.WriteString(h, row.Scan(&salt))

	if h.Sum(nil) == vars["hash"] {
		p := map[string]string{
			"title":  "Авторизация",
			"domen":  "localhost",
			"keyApi": vars["keyApi"],
			"hash":   vars["hash"],
		}

		TemplateHtml("login.html", p, w)
	} else {
		p := map[string]string{
			"err":   "Неверный хеш",
			"domen": "localhost",
		}

		TemplateHtml("err.html", p, w)
	}
}

Ошибки
# command-line-arguments
./main.go:33: undefined: salt
./main.go:33: cannot use row.Scan(&salt) (type error) as type string in argument to io.WriteString
./main.go:35: invalid operation: h.Sum(nil) == vars["hash"] (mismatched types []byte and string)


Как я понял то это я не получил данные ячейки, а получил хз что. Зарание спасибо.
Вот скрипт полностью с нормальной подсветкой
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 2
@FireGM
io.WriteString(h, row.Scan(&salt))
У вас не определенна переменная salt, компилятор же всё ясно пишет.
if h.Sum(nil) == vars["hash"]
А здесь разные типы сравниваете, []byte и string. В один тип конвертните.
UPD.
например вот так string(h.Sum(nil)) == string(vars["hash"])
Ответ написан
AMar4enko
@AMar4enko
var salt string
row.Scan(&salt) ?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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