2016-09-26 11 views
6

Przeszukałem błąd i mam tu dwa pytania:sqlx - non-struct typ docelowy struct z> 1 kolumny (2)

Oto mój kod:

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) 
    } 

} 

Tworzy stół i włóż 2 rekordy, ale nie może wrócić z powrotem:

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

Jak mogę to naprawić?

Odpowiedz

10

Działa jeśli wyeksportować pola:

type Film struct { 
    Code int 
    Name string 
} 

zauważy wielkimi literami (Code, nie code).