首页 > 解决方案 > Go []byte 未存储在 MySQL 数据库中

问题描述

我有一个 MySQL 数据库表,其中有一个名为 ID 的 VARBINARY 列。在 Go 中,我试图发送一个 []byte 以插入到名为 ID 的列中。我没有从 statement.Exec 命令中得到错误,但是当我检查数据库时,该列是空的。知道为什么吗?

这是我的声明

statement, _ := db.Prepare("INSERT INTO table(IDs) VALUES (?)")
_, err := statement.Exec(idsByte)

附加信息:idsByte 最初是一个 []int32,但我把它放在一个循环中并将值附加到一个 []byte 因为 []int32 不被 MySQL 接受。以下是我将 []int32 转换为 []byte 的方法。

var idsByte []byte
for i:=0;i<len(ids);i++{ //ids is the []int32
    idsByte=append(idsByte,byte(ids[i]))
}

如果有更好的方法将数组插入 MySQL 表,请分享。

编辑:原来 []byte 已存储,只是在 Sequel Pro 中不可见。当我查询该行时,该列已填充​​。有人知道为什么会这样吗?

标签: mysqlgobyte

解决方案


推荐阅读