mysql - 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 中不可见。当我查询该行时,该列已填充。有人知道为什么会这样吗?
解决方案
推荐阅读
- arrays - 在 Array 中查找周围的值元素
- reactjs - 如何在 React 中重新加载时不重置 ID?
- java - java.nio.file.ProviderNotFoundException:未找到提供程序
- generics - F# 泛型约束让一个泛型类型从另一个继承
- python - 将尾随零添加到小数位
- java - 使用 java api 更新 HTML 文件
- angular - 无法从 Angular SSR 中的资产中获取静态文件
- python - 使用pywin32在excel中写日期没有时间
- apache-kafka - 有没有办法在没有魔术字节的情况下使用 kafka 模式注册表?
- c# - 值不能为空。尝试使用 JsonConverter .net core 3.1 反序列化对象时出现(参数“值”)错误