在sqlite3的数据库查询行时我收到以下错误:如何修复golang SQL字符串转换扫描错误

sql: Scan error on column index 3: converting string "" to a int64: strconv.ParseInt: parsing "": invalid syntax
IdEmail

的SQL表具有以下九列:

`0,Id,INTEGER,0,,1 
1,Email,TEXT,0,,0 
2,Name,TEXT,0,,0 
3,Rsvp,INTEGER,0,,0 
4,Guests,INTEGER,0,,0 
5,Meal0,INTEGER,0,,0 
6,Meal1,INTEGER,0,,0 
7,Comments,TEXT,0,,0 
8,ModifiedAt,TEXT,0,,0` 
其在server.go具有以下结构定义

(I加入sql.NullString处理空列):

type User struct { 
    Id   int 
    Email  string 
    Name  sql.NullString 
    Rsvp  sql.NullInt64 
    Guests  sql.NullInt64 
    Meal0  sql.NullInt64 
    Meal1  sql.NullInt64 
    Comments sql.NullString 
    ModifiedAt sql.NullString 
} 

查询是从下列处理程序:

func Rsvp1Handler(w http.ResponseWriter, r *http.Request) { 
    email := r.URL.Path[len("/rsvp/"):] 
    var user User 
    err := userStatement.QueryRow(email).Scan(&user.Id, &user.Email, &user.Name, &user.Rsvp, &user.Guests, &user.Meal0, &user.Meal1, &user.Comments, &user.ModifiedAt) 

    switch { 
    case err == sql.ErrNoRows: 
    log.Println("No user with that ID.") 
    w.Header().Set("Content-Type", "text/plain") 
    fmt.Fprintf(w, "Email address not found: %s", email) 

    case err != nil: 
    log.Println(err) 
    fmt.Fprintf(w, "Database error:\n", err) 
    default: 
    log.Println("Query success. Email address: ", email) 
    w.Header().Set("Content-Type", "application/json") 
    json.NewEncoder(w).Encode(&user) 
} 

其依赖于下面的C onstant和var:

const userSelect = "SELECT * FROM rsvp WHERE email = ?" 
var userStatement *sql.Stmt 

任何帮助或对错误的深入了解都非常感谢!