Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sqlx - non-struct dest type struct with >1 columns (2)

Tags:

I have searched the error and I have find two questions:

  • This one, but my question is not duplicate of it
  • And this one, but there is no answer in this question.

Here is my code:

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

It creates table and insert 2 records, but can not return them back:

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

How can I fix it ?

like image 972
ceth Avatar asked Sep 26 '16 11:09

ceth


1 Answers

It works if you export your fields:

type Film struct {     Code int     Name string } 

Notice the uppercase (Code, not code).

like image 66
Ainar-G Avatar answered Oct 04 '22 12:10

Ainar-G