2016-09-26 13 views
6

Tôi đã tìm kiếm các lỗi và tôi phải tìm hai câu hỏi:sqlx - phi struct loại dest struct với> 1 cột (2)

  • This one, nhưng câu hỏi của tôi không được lặp lại của nó
  • And this one , nhưng không có câu trả lời trong câu hỏi này.

Đây là mã của tôi:

package main 

import (
    "log" 

    "github.com/jmoiron/sqlx" 

    _ "github.com/lib/pq" 
) 

var schema = ` 
CREATE TABLE films (
    code int, 
    name VARCHAR(10) 
)` 

type Film struct { 
    code int 
    name string 
} 

func main() { 
    db, err := sqlx.Open("postgres", "user=demas password=root host=192.168.99.100 port=32768 dbname=mydb sslmode=disable") 
    if err != nil { 
     log.Fatal(err) 
    } 

    db.MustExec(schema) 

    tx := db.MustBegin() 
    tx.MustExec("INSERT INTO films(code, name) VALUES($1, $2)", 10, "one") 
    tx.MustExec("INSERT INTO films(code, name) VALUES($1, $2)", 20, "two") 
    tx.Commit() 

    films := []Film{} 
    err = db.Select(&films, "SELECT * FROM public.films") 
    if err != nil { 
     log.Fatal(err) 
    } 

} 

Nó tạo ra bảng và chèn 2 hồ sơ, nhưng không thể trở về chúng trở lại:

λ go run main.go 
2016/09/26 14:46:04 non-struct dest type struct with >1 columns (2) 
exit status 1 

Làm thế nào tôi có thể sửa chữa nó?

Trả lời

10

Nó hoạt động nếu bạn xuất các lĩnh vực của bạn:

type Film struct { 
    Code int 
    Name string 
} 

Chú ý các chữ hoa (Code, không code).