亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Go Lang,Postgres:掃描后無法獲取 oid

Go Lang,Postgres:掃描后無法獲取 oid

Go
慕姐4208626 2023-05-08 15:51:15
我有 2 列如果表accounts:oid和balanceoid通過下一個代碼,我嘗試提取balance:// variable `id` comes from an another partsqlstr := `SELECT * ` +    `FROM accounts ` +    `WHERE oid=` + id + `;`q, err := db.Query(sqlstr)if err != nil {    fmt.Println("Error: GetAccount \n", err)    return Account{}, err}defer q.Close()var _id stringvar bal float64q.Next()q.Scan(&_id)fmt.Println("_id ", _id)q.Next()q.Scan(&bal)fmt.Println("bal ", bal)在第一個q.Next()我希望提取之后oid,在第二個之后提取balance。但每次在第一次q.Next()和第二次之后我只得到balance.我嘗試更改sqlstr為下一個:sqlstr := `SELECT oid, balance ` +    `FROM accounts ` +    `WHERE oid=` + id + `;`但我仍然無法提取oid。
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

試試這個q.Scan(&_id, &bal),func (*Row) Scan有這個簽名:

func?(r?*Row)?Scan(dest?...interface{})?error

它期望指向將存儲查詢數據的值的指針。

如果您只查詢單行,則可以使用func (*DB) QueryRow()。然后你的代碼將簡化為

row?:=?db.QueryRow(sqlstr)
err?:=?row.Scan(&_id,?&bal)
//?err?will?be?sql.ErrNoRows?if?no?rows?have?been?selected


查看完整回答
反對 回復 2023-05-08
  • 1 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號