golang sqlite无法定义查询变量

看来golang的sqlite包不喜欢我的db.Query说法,虽然它和github上的例子中发现的完全一样。


db, err := sql.Open("sqlite3", "./database.db")

if err != nil {

    log.Fatal(err)

}

defer db.Close()


rows, err = db.Query("select id, name from job")

if err != nil {

    log.Fatal(err)

}   

defer rows.Close()


fmt.Println("Jobs:")

for rows.Next() {

    var name string

    var id int

    fmt.Printf("%v %v\n", id, name)

}  

这是我得到的错误:


./test.go:7: undefined: rows

./test.go:7: cannot assign to rows

./test.go:11: undefined: rows

./test.go:14: undefined: rows

编辑:我也尝试过使用重音符和单引号字符串db.Query(),但无济于事。


狐的传说
浏览 222回答 1
1回答

富国沪深

您不能为未声明的变量赋值。rows, err = db.Query("select id, name from job")应该 :rows, err := db.Query("select id, name from job")理论上这应该可以解决问题,但我还没有尝试过。您还应该添加:rows.Scan(&id, &name)在 printf 函数之前,以便实际将行的值分配给 id & name 变量,否则将打印一个空字符串 & 0。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go