Ich habe meine Website und es kann etwas schreiben. Dann kann mein Dienst diese Daten erhalten und in meiner Datenbank speichern, aber es funktioniert nicht für mich. Ich habe einige Schritte versucht und es scheint, dass Übertragungsstring zu dab(), aber es kann nichts in meiner Datenbank speichern.Daten können nicht in meiner Datenbank gespeichert werden
Fehlerprotokoll:
2016/05/14 08:02:08 http: panic serving 14.146.246.141:64540: sql: converting argument #0's type: unsupported type
[]string, a slice
goroutine 5 [running]:
net/http.(*conn).serve.func1(0xc8200b4f20, 0x7f8b9f86c6c8, 0xc820024038)
/usr/lib/golang/src/net/http/server.go:1287 +0xb5
main.checkErr(0x7f8b9f867028, 0xc82000b4a0)
/home/Mario/a.go:50 +0x4b
main.dab(0xc82000b360, 0x1, 0x1, 0xc82000b370, 0x1, 0x1)
/home/Mario/a.go:41 +0x306
main.handle(0x7f8b9f86c848, 0xc8200b5550, 0xc8200de2a0)
/home/Mario/a.go:28 +0x4a7
net/http.HandlerFunc.ServeHTTP(0x876a90, 0x7f8b9f86c848, 0xc8200b5550, 0xc8200de2a0)
/usr/lib/golang/src/net/http/server.go:1422 +0x3a
net/http.(*ServeMux).ServeHTTP(0xc820012930, 0x7f8b9f86c848, 0xc8200b5550, 0xc8200de2a0)
/usr/lib/golang/src/net/http/server.go:1699 +0x17d
net/http.serverHandler.ServeHTTP(0xc820016120, 0x7f8b9f86c848, 0xc8200b5550, 0xc8200de2a0)
/usr/lib/golang/src/net/http/server.go:1862 +0x19e
net/http.(*conn).serve(0xc8200b4f20)
/usr/lib/golang/src/net/http/server.go:1361 +0xbee
created by net/http.(*Server).Serve
/usr/lib/golang/src/net/http/server.go:1910 +0x3f6
-Code-Schnipsel:
package main
import (
"net/http"
"log"
"fmt"
"html/template"
_ "github.com/go-sql-driver/mysql"
"database/sql"
)
func Mai(w http.ResponseWriter, r *http.Request){
t, _ := template.ParseFiles("a.js")
t.Execute(w, nil)
}
func FormServer(w http.ResponseWriter, r *http.Request){
t, _ := template.ParseFiles("an.html")
t.Execute(w, nil)
}
func handle(w http.ResponseWriter, r *http.Request){
r.ParseForm()
fmt.Println("title:", r.Form["title"])
fmt.Println("main:", r.Form["main"])
a := r.Form["title"]
b := r.Form["main"]
dab(a , b)
// t, _ := template.ParseFiles("finish.html")
// t.Execute(w, nil)
}
func dab(a , b []string){
db, err := sql.Open("mysql", "root:[email protected]/xiaoyou?charset=utf8")
checkErr(err)
stmt, err := db.Prepare("INSERT talk SET title=?,main=?")
checkErr(err)
res, err := stmt.Exec(a , b)
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
db.Close()
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
func main() {
http.HandleFunc("/",Mai)
http.HandleFunc("/login", FormServer)
http.HandleFunc("/submit",handle)
err := http.ListenAndServe(":80", nil)
if err != nil {
log.Fatal("ListenAndServe:",err)
}
}
Wie kann ich es beheben?
nach dem Öffnen, einen Ping zu überprüfen, ob die Datenbank verbunden ist: err: = db.Ping() – Fantasim