为了账号安全,请及时绑定邮箱和手机立即绑定

插入到mysql中的地理空间字段

插入到mysql中的地理空间字段

Go
一只名叫tom的猫 2022-05-10 14:06:21
我有一个string以十六进制表示多边形的对象,我想将其保存到mysql数据库中。我使用了 `` 如此处所述。这是我用来生成多边形的方法:func GetPolygon(coordinates [][]geom.Coord) (string, error) {    unitSquare := geom.NewPolygon(geom.XY).MustSetCoords(coordinates)    polygon, err := wkb.Marshal(unitSquare, wkb.NDR)    if err != nil {        fmt.Printf("wkb marshal error: %s\n", err.Error())        return "", err    }    polygonHex := hex.Dump(polygon)    return polygonHex, nil}这就是我生成查询的方式:insertQuery := fmt.Sprintf(`INSERT INTO my_table (polygon) VALUE (ST_GeomFromWKB(X'%v'))`, poly)但是当我执行查询时,我得到:Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'X'00000000  01 03 00 00 00 01 00 00  00 92 00 00 00 ff ff ff  |................|' at line 1
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

要在 Golang 中从字节数组创建十六进制字符串,您必须使用以下命令:

s := hex.EncodeToString(b)

Dump命令生成xxdlike 的输出。


查看完整回答
反对 回复 2022-05-10
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号