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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Go 中嘗試掃描到 int64 指針時(shí)出錯(cuò)

在 Go 中嘗試掃描到 int64 指針時(shí)出錯(cuò)

Go
寶慕林4294392 2021-11-15 16:06:14
我收到這個(gè)錯(cuò)誤 Scan error on column index 1: converting string "<nil>" to a int64: strconv.ParseInt: parsing "<nil>": invalid syntax嘗試運(yùn)行此簡(jiǎn)單代碼時(shí):var id int64var replyTo *int64replyTo = new(int64)query := `    SELECT id, reply_to    FROM message    WHERE id = 211    LIMIT 1;`if err := sql.DB.QueryRow(query).Scan(&id, replyTo); err != nil {    log.Println(err)}spew.Dump(id, replyTo)我從中選擇的表格如下所示:如果我將選擇查詢更改為: WHERE id = 210,而不是 211 則它可以工作。sql.DB 只是 sqlx 庫(kù)的一個(gè)實(shí)例。var DB *sqlx.DB我正在使用指針來(lái)捕獲數(shù)據(jù)庫(kù)中的 NULL 列。我正在使用指針,因?yàn)槲也淮_定 sql.NullInt64 是否與 sqlx 庫(kù)配合良好。為什么我會(huì)收到這個(gè)錯(cuò)誤?我該怎么辦?
查看完整描述

1 回答

?
富國(guó)滬深

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

Scan 需要一個(gè)指向您的指針的指針才能工作:


var id int64

var replyTo *int64

replyTo = new(int64)


query := `

    SELECT id, reply_to

    FROM message

    WHERE id = 211

    LIMIT 1;

`

// The change is here : &replyTo instead of just replyTo

if err := sql.DB.QueryRow(query).Scan(&id, &replyTo); err != nil {

    log.Println(err)

}


spew.Dump(id, replyTo)

然后不要忘記replyTo == nil在使用該值之前進(jìn)行測(cè)試*replyTo


替代解決方案:使用sql.NullInt64:https : //golang.org/pkg/database/sql/#NullInt64


查看完整回答
反對(duì) 回復(fù) 2021-11-15
  • 1 回答
  • 0 關(guān)注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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