Golang Insert NULL into sql instead of empty string

go, mysql

Solution

In my code I have a function that converts a string to `sql.NullString`

func NewNullString(s string) sql.NullString {
    if len(s) == 0 {
        return sql.NullString{}
    }
    return sql.NullString{
         String: s,
         Valid: true,
    }
}

Then whenever I am using `Exec` I wrap my strings that could be NULL in the DB with the `NewNullString` function.

db.Exec(`
  insert into
      users first_name, last_name, email
      values (?,?,?)`,
  firstName,
  lastName,
  NewNullString(email),
)

Problem

I'm trying to insert data into a mysql database using golang. In the case where my value takes on an empty string, I would want to insert a null. How can I adjust the following to insert nulls instead of empty string? Thanks. ``` _, err := m.Db.Exec(`INSERT INTO visitor_events (type, info, url_path, visitor_id, created_at, domain) VALUES (?, ?, ?, ?, ?, ?)`, m.SaveEventType(ve), ve.EventInfo, m.SaveURLPath(ve.UrlPath), ve.VisitorId, time.Now().UTC(), ve.Domain) ```

Original source