title: Invalid DSN: network address not terminated (missing closing brace)
body: <p>I am new to go and backend development. I am trying to use a MySQL database with go to create a REST API.</p>
  
  <pre><code>func getUsers(w http.ResponseWriter, r *http.Request) {
      db, err := sql.Open("mysql", "root:mypassword@tcp(127.0.0.1:3306/test)")
      if err != nil {
          panic(err.Error())
      }
      results, err := db.Query("Select * from users")
      if err != nil {
          panic(err.Error())
      }
      for results.Next() {
          var user User
          err = results.Scan(&amp;user.FirstName)
          if err != nil {
              panic(err.Error)
          }
          fmt.Println(user.FirstName)
      }
      //scores is an array that i have already created just to return dummy data
      json.NewEncoder(w).Encode(scores)
  }
  </code></pre>
  
  <p>I get this error: </p>
  
  <pre><code>http: panic serving [::1]:54508: invalid DSN: network address not terminated (missing closing brace)
  goroutine 5 [running]:
  net/http.(*conn).serve.func1(0xc42009abe0)
          /usr/local/go/src/net/http/server.go:1726 +0xd0
  panic(0x129cea0, 0xc420010ec0)
          /usr/local/go/src/runtime/panic.go:505 +0x229
  main.getUsers(0x134bca0, 0xc42011e000, 0xc42011c200)
          /Users/tushar/go/src/github.com/tushar/jump/main.go:62 +0x33f
  net/http.HandlerFunc.ServeHTTP(0x1326230, 0x134bca0, 0xc42011e000, 0xc42011c200)
          /usr/local/go/src/net/http/server.go:1947 +0x44
  github.com/gorilla/mux.(*Router).ServeHTTP(0xc420110000, 0x134bca0, 0xc42011e000, 0xc42011c200)
          /Users/tushar/go/src/github.com/gorilla/mux/mux.go:162 +0xed
  net/http.serverHandler.ServeHTTP(0xc42008aea0, 0x134bca0, 0xc42011e000, 0xc42011c000)
          /usr/local/go/src/net/http/server.go:2694 +0xbc
  net/http.(*conn).serve(0xc42009abe0, 0x134bf60, 0xc420062240)
          /usr/local/go/src/net/http/server.go:1830 +0x651
  created by net/http.(*Server).Serve
          /usr/local/go/src/net/http/server.go:2795 +0x27b
  </code></pre>
  
  <p>I am not able to understand the issue.</p>
  
  <p>It works fine when there is no DB query.</p>
  
  <p><strong>EDIT 1:</strong>
  editted sql.Open to change closing braces to  <code>root:mypassword@tcp(127.0.0.1:3306)/test</code>
  works fine when querying</p>
  
  <p>but i get panic while inserting in db </p>
  
  <pre><code>func insertUsers(w http.ResponseWriter, r *http.Request) {
      db, err := sql.Open("mysql", "root:mypassword@tcp(127.0.0.1:3306)/test")
      if err != nil {
          panic(err.Error())
      }
      insert, err := db.Query("Insert into users (personId,firstName,lastName) values(20,tushar,saha)")
      if err != nil {
          panic(err.Error)
      }
      defer insert.Close()
  }
  </code></pre>
  
  <p>this is the error 1</p>
  
  <pre><code>2018/06/23 11:54:10 http: panic serving [::1]:54802: 0x126a8b0
  goroutine 19 [running]:
  net/http.(*conn).serve.func1(0xc4200aebe0)
          /usr/local/go/src/net/http/server.go:1726 +0xd0
  panic(0x129bb20, 0xc42016a020)
          /usr/local/go/src/runtime/panic.go:505 +0x229
  main.insertUsers(0x134bc80, 0xc42013c000, 0xc420138200)
          /Users/tushar/go/src/github.com/tushar/jump/main.go:50 +0x15d
  net/http.HandlerFunc.ServeHTTP(0x1326218, 0x134bc80, 0xc42013c000, 0xc420138200)
          /usr/local/go/src/net/http/server.go:1947 +0x44
  github.com/gorilla/mux.(*Router).ServeHTTP(0xc42012c000, 0x134bc80, 0xc42013c000, 0xc420138200)
          /Users/tushar/go/src/github.com/gorilla/mux/mux.go:162 +0xed
  net/http.serverHandler.ServeHTTP(0xc420095040, 0x134bc80, 0xc42013c000, 0xc420138000)
          /usr/local/go/src/net/http/server.go:2694 +0xbc
  net/http.(*conn).serve(0xc4200aebe0, 0x134bf40, 0xc42009a200)
          /usr/local/go/src/net/http/server.go:1830 +0x651
  created by net/http.(*Server).Serve
          /usr/local/go/src/net/http/server.go:2795 +0x27b
  </code></pre>