第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 MySQL 中存儲二進(jìn)制數(shù)據(jù)?

如何在 MySQL 中存儲二進(jìn)制數(shù)據(jù)?

Go
慕田峪4524236 2021-06-29 01:13:33
我正在使用來自http://github.com/go-sql-driver/mysql的 MySQL 驅(qū)動程序我需要將 MySQL 中 IP 地址的二進(jìn)制表示形式存儲在 BINARY(4) 列中。為此,我嘗試過:    startSlice := net.ParseIP(rangeStart).To4()    var startBytes [4]byte    copy(startSlice[:], startBytes[0:4])    endSlice := net.ParseIP(rangeEnd).To4()    var endBytes [4]byte    copy(endSlice[:], endBytes[0:4])    r, e := db.Exec("UPDATE AIPRangesBlocks SET BinRangeStart = ?, BinRangeEnd = ? WHERE IPGRID = ?", startBytes, endBytes, id)    fmt.Println("result of update:", r)    if e != nil {        fmt.Println(e)    }請注意,我使用 copy 命令將 []byte 切片轉(zhuǎn)換為簡單的 [4]byte 數(shù)組,但出現(xiàn)此錯誤:sql: converting Exec argument #0's type: unsupported type [4]uint8, a array如果我直接以 net.ParseIP("some_ip").To4() 的形式執(zhí)行此操作,則會出現(xiàn)此錯誤:sql: converting Exec argument #0's type: unsupported type net.IP, a slice如何發(fā)送二進(jìn)制數(shù)據(jù)?如果我使用十六進(jìn)制字符串,它將執(zhí)行查詢,但在檢索時我沒有得到正確的值。我嘗試了 hex.EncodeToString() 和 "0x" + hex.EncodeToString() ,但都不能正常工作。下面是一個例子:66.182.64.0 becomes 42b64000如果我在 MySQL 列中存儲“42b64000”,我會返回:52 50 98 54如果我在 MySQL 列中存儲“0x42b64000”,我會返回:48 120 52 50我該如何解決?
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗 獲得超5個贊

您可以嘗試使用encoding/binary:binary.LittleEndian.Uint32(net.ParseIP(rangeStart).To4()) 和將其存儲為 uint32 binary.LittleEndian.PutUint32(destinationSlice, colValue)。如果LittleEndian為您的其他應(yīng)用程序提供錯誤的結(jié)果,請BigEndian改用。


查看完整回答
反對 回復(fù) 2021-07-05
?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊

您完全可以將其轉(zhuǎn)換為十六進(jìn)制字符串。

這是我解決它的方法(對于 IPv4 和 IPv6):

  1. 假設(shè)您的表是:

創(chuàng)建表 ip_addr (ip VARBINARY(16));

  1. 準(zhǔn)備 INSERT 或 UPDATE 語句如下:

stmt := db.Prepare("INSERT INTO ip_addr (ip) VALUES (UNHEX(?))")

  1. 在“Go”代碼中:

 if ip.To4() != nil {
                ip_hex = hex.EncodeToString(ip.To4())
 } else {
                ip_hex = hex.EncodeToString(ip.To16())
 }
 stmt.Exec(ip_hex)


查看完整回答
反對 回復(fù) 2021-07-05
  • 3 回答
  • 0 關(guān)注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號