未报错,但无法把客户端数据写入数据库中

请大神解疑:为什么无法进入到localhost:8090/upload界面 且 为什么无法把客户端输入数据写入到数据库中?

以下是后端代码:

package main

import (
    "net/http"
    "html/template"
    _ "github.com/go-sql-driver/mysql"
    "database/sql"
    "fmt"
)

func welcome(w http.ResponseWriter,r *http.Request)  {
    t,_:=template.ParseFiles("static/application.html")
    t.Execute(w,nil)
}

func upload(w http.ResponseWriter,r *http.Request)  {
    t,_:=template.ParseFiles("static/success.html")
    t.Execute(w,nil)
    a:=r.FormValue("applicant")
    th:=r.FormValue("theme")
    c:=r.FormValue("content")
    //连接mysql实现数据新增
    //1.打开连接
    db,err:=sql.Open("mysql","root:root@tcp(localhost:8090)/application")
    db.Ping()
    defer func() {
        db.Close()
    }()
    if err!=nil {
        fmt.Println("数据连接失败")
        return
    }
    //2.预处理SQL
    stmt,err:=db.Prepare("insert into application values (default ,?,?,?)")
    defer func() {
        stmt.Close()
    }()
    if err!=nil {
        fmt.Println("预处理失败")
        return
    }
    result,err:=stmt.Exec(a,th,c)
    if err!=nil {
        fmt.Println("sql执行失败")
        return
    }
    count,err:=result.RowsAffected()
    if err!=nil {
        fmt.Println("结果获取失败")
        return
    }
    //3.获取结果
    if count>0 {
        fmt.Println("新增成功")
    }else {
        fmt.Println("新增失败")
    }
    //4.关闭连接(以上defer函数实现关闭连接)
}

func main() {
    server:=http.Server{Addr:":8090"}
    http.HandleFunc("/",welcome)
    http.HandleFunc("/upload",upload)
    server.ListenAndServe()
}

以下是前端代码:
图片说明图片说明
图片说明

1个回答

upload函数里面,能取到传过来的几个参数吗

weixin_45134380
weixin_45134380 回复明教一百零八代觉主: 我试了你这种写法,也没能成功
4 个月之前 回复
u012737673
明教一百零八代觉主 正常些sql语句应该是这样吧:insert into table(列1,列2,列3) values (?,?,?)
4 个月之前 回复
weixin_45134380
weixin_45134380 回复明教一百零八代觉主: 是指application后面接我要存入的字段吗?那result,err:=stmt.Exec(a,th,c)这一句就是把从客户端获取到的数据a,th,c作为存入数据库的对象
4 个月之前 回复
weixin_45134380
weixin_45134380 回复明教一百零八代觉主: 表名后面要跟字段名是什么意思?
4 个月之前 回复
u012737673
明教一百零八代觉主 stmt,err:=db.Prepare("insert into application values (default ,?,?,?)")这句sql有问题吧?表名后面要跟字段名
4 个月之前 回复
weixin_45134380
weixin_45134380 可以的,但取到的参数就是没法存入数据库
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!