#postgresql #go #pq
#postgresql #Вперед #pq
Вопрос:
type User struct {
Email string `json:"email"`
Password string `json:"password"`
}
db, err := sql.Open("postgres", os.Getenv("DATABASE_URL"))
if err != nil {
log.Fatal(err)
}
fmt.Println("email: ", reflect.TypeOf(usr.Email)) //string
fmt.Println("salt: ", reflect.TypeOf(salt)) //[]uint8
fmt.Println("hash: ", reflect.TypeOf(hash)) //string
sql := `INSERT INTO public."Users" (email, password, salt) VALUES ($1, $2, $3)`
_, err = db.Exec(sql, usr.Email, hash, salt)
выдает ошибку: «pq: недопустимая последовательность байтов для кодирования «UTF8″: 0x97»
моя таблица: тип «email»: ТЕКСТ, тип «password»: ТЕКСТ, тип «salt»: smallint[] (думаю, это может быть причиной ошибки, но я не уверен, что использовать вместо этого)
Комментарии:
1. Может быть,
salt
столбец — это строка? Попробуйтеstring(salt)
2. столбец salt — это smallint[], я не могу преобразовать весь массив, иначе это будет дорого стоить, когда придет время преобразовать и использовать [] uint8 для входа в систему.
Ответ №1:
PostgreSQL bytea = []unit8 Golang
изменен тип, и проблема решена!