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

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

無法使用* DB.Rows()獲取所有行

無法使用* DB.Rows()獲取所有行

Go
小唯快跑啊 2021-04-09 22:19:03
我是gorm的新手,所以如果我誤解了一點(diǎn),請(qǐng)指出。我正在使用MySQL編寫小型應(yīng)用程序,因此決定將gorm用作ORM。源代碼和輸出如下。package mainimport (    "fmt"    "log"    "github.com/jinzhu/gorm"    _ "github.com/jinzhu/gorm/dialects/mysql")type Group struct {    gorm.Model    Name string `gorm:"not null;unique"`}func openDB() *gorm.DB {    user := "ipmonitor"    password := "testpassword"    database := "ipmonitor"    mysqlURL := "%s:%s@/%s?charset=utf8mb4&parseTime=True&loc=Local"    db, err := gorm.Open("mysql", fmt.Sprintf(mysqlURL, user, password, database))    if err != nil {        log.Fatalln(err)    }    return db}func initDB(db *gorm.DB) {    db = db.Set("gorm:table_options", "ENGINE=InnoDB CHARSET=utf8mb4")    db.AutoMigrate(&Group{})    result := db.Create(&Group{Name: "foo"})    if result.Error != nil {        log.Fatalln(result.Error)    }    result = db.Create(&Group{Name: "bar"})    if result.Error != nil {        log.Fatalln(result.Error)    }    result = db.Create(&Group{Name: "baz"})    if result.Error != nil {        log.Fatalln(result.Error)    }}func main() {    db := openDB()    db.LogMode(true)    initDB(db)    records := db.Find(&Group{})    if records.Error != nil {        log.Fatalln(records.Error)    }    log.Printf("%d rows found.", records.RowsAffected)    rows, err := records.Rows()    if err != nil {        log.Fatalln(err)    }    defer rows.Close()    for rows.Next() {        var group Group        err := db.ScanRows(rows, &group)        if err != nil {            log.Fatalln(err)        }        log.Printf("%+v\n", group)    }    if rows.Err() != nil {        log.Fatalln(rows.Err())    }}我希望該*DB.Find().Rows()方法返回多行,但似乎只返回最后一行。根據(jù)gorm debug輸出,似乎在執(zhí)行SELECT語句時(shí)添加了未指定的條件。谷歌搜索后,我無法找出問題的原因。為什么我的代碼不起作用?
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

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

您可以嘗試這種替代方法:


var records []Group

db.Find(&records)

所有數(shù)據(jù)都可以在中作為數(shù)組使用records。


如果您需要處理錯(cuò)誤:


if err := db.Find(&records).Error; err != nil {

  log.Fatalln(err)

}

log.Printf("%d rows found.", len(records))


查看完整回答
反對(duì) 回復(fù) 2021-04-19
  • 1 回答
  • 0 關(guān)注
  • 382 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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