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

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

Go/golang sqlite 查詢不返回任何行

Go/golang sqlite 查詢不返回任何行

Go
人到中年有點(diǎn)甜 2021-10-04 16:52:37
我是新手,試圖從 sqlite 數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。我使用 github.com/mattn/go-sqlite3 作為 sqlite 驅(qū)動(dòng)程序。我發(fā)送的查詢不返回任何結(jié)果,即使它應(yīng)該返回。我嘗試了我的程序手動(dòng)生成的查詢,它在我手動(dòng)使用查詢以及通過我的程序發(fā)送查詢時(shí)返回?cái)?shù)據(jù)。這是我的代碼:for index := range Array {id, _ := strconv.Atoi(Array[index])rand.Seed(time.Now().UnixNano())RandomNr := rand.Intn(100)fmt.Printf("index: %d - randomnr: %d  \n", id, RandomNr)rows, errROW := db.Query("SELECT user.id,user.name,stage.link,player.url,player.characterchance,player.chance FROM user,stage,player WHERE user.id = '%d' AND '%d' <= user.chance AND stage.user = user.id AND stage.domain = player.id AND player.chance > 0 ORDER BY player.id ASC \n",id, RandomNr)//.Scan(&idr, &name, &link, &url, &characterchance, &chance)//this is what the finished query looks like and it returns the rows as its supposed to //rows, errROW := db.Query("SELECT user.id,user.name,stage.link,player.url,player.characterchance,player.chance FROM user,stage,player WHERE user.id = '203' AND '33' <= user.chance AND stage.user = user.id AND stage.domain = player.id AND player.chance > 0 ORDER BY player.id ASC")if errROW != nil {    fmt.Println("errROW")    log.Println(errROW)}defer rows.Close()if rows.Next() == false {    fmt.Println("no rows ")}for rows.Next() {    fmt.Println("where are the rows")    var id int    var name string    var link string    var url string    var characterchance int    var chance int    rows.Scan(&id, &name, &link, &url, &characterchance, &chance)    fmt.Println(id,name,link,url,characterchance,chance)}rows.Close()}}此查詢可以返回多行和單行。我還嘗試通過 QueryRow 作為單行檢索數(shù)據(jù),但也沒有返回任何結(jié)果。任何幫助將非常感激。更新:我添加了 if rows.Next() == false作為尋找問題的嘗試。刪除它會(huì)產(chǎn)生相同的結(jié)果。此外,我沒有從掃描中收到錯(cuò)誤消息。for rows.next() 循環(huán)甚至不會(huì)被執(zhí)行。
查看完整描述

2 回答

?
慕哥9229398

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

當(dāng)你這樣做時(shí):

if rows.Next() == false

您正在滾動(dòng)到第一行

for rows.Next()

移至下一行

基本上,您正在跳過您提供的示例代碼中結(jié)果集中的第一行。

此外,您忽略了 Scan 中的錯(cuò)誤。

如果查詢返回至少 2 行,這看起來會(huì)打印一些內(nèi)容(因?yàn)榈谝恍斜惶^)


查看完整回答
反對(duì) 回復(fù) 2021-10-04
?
紅糖糍粑

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

好的,我想出了問題所在:

在我的查詢中,我使用了: %d 作為我的變量的占位符,當(dāng)我應(yīng)該使用 $1、$2 等時(shí)。使用這個(gè)查詢會(huì)按預(yù)期返回結(jié)果。

我覺得奇怪的是,允許這種行為不會(huì)從 go 或 sqlite 返回任何錯(cuò)誤,甚至在您只是打印查詢并手動(dòng)將其與 sqlite3 一起使用時(shí)也能工作。來自 C 并且剛開始使用 go 這顯然可能是一些頭痛的原因。


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

添加回答

舉報(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)