似乎golang的sqlite包不像我的db.Query
声明,尽管它与the example on 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()
的严重重音和单引号字符串,但无济于事。
答案 0 :(得分:4)
您无法为未声明的变量指定值。
rows, err = db.Query("select id, name from job")
应该是:
rows, err := db.Query("select id, name from job")
理论上这可以解决问题,但我没有尝试过。
你还应该添加:
rows.Scan(&id, &name)
在printf函数之前,实际将行的值分配给id&否则,名称变量将打印一个空字符串& 0