为了账号安全,请及时绑定邮箱和手机立即绑定

无法获得更新查询的数据库响应,以便在 go 中进一步执行

无法获得更新查询的数据库响应,以便在 go 中进一步执行

Go
慕婉清6462132 2021-08-10 16:52:54
我想更新远程数据库表中的数据并执行进一步的任务,但无法执行。在插入查询中使用相同的代码,我能够在同一个表中插入值,在那里我得到非常快的响应并继续执行进一步的任务。但是在更新查询中,它会更新表中的值,但不能更进一步。这是我尝试过的示例代码:package srcimport (    "github.com/go-sql-driver/mysql"    "database/sql"    "fmt"    "log"    "net")const (    DB_NAME = "test_db"    DB_HOST = "remote db ip address:port"    DB_USER = "username"    DB_PASS = "password")const (    bufferSize int    = 1024    port       string = ":23456")func main() {    udpAddr, err := net.ResolveUDPAddr("udp6", port)    var s Server    s.conn, err = net.ListenUDP("udp4", udpAddr)    fmt.Println("Trying to connect remote db")    dsn := DB_USER + ":" + DB_PASS + "@" + DB_HOST + "/" + DB_NAME + "?charset=utf8"    db, err := sql.Open("mysql", dsn)    if err != nil {        log.Fatal(err)    }    defer db.Close()    fmt.Println("Connected db")    rows, err := db.Query("UPDATE user_name_table SET user_id = ? WHERE user_name = ? ", "abcd", "admin")    defer rows.Close()    if err != nil {        log.Fatal(err)        fmt.Println("error in updating values")    } else {        fmt.Println("updated successfully in db")    }    // not coming here for doing further tasks}另外,我尝试从 php webservice 更新 db 表并且它工作正常,但是使用 go 既没有在更新值后给出响应也没有进一步移动。请帮我 。提前致谢。
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

发生这种情况是因为log.Fatal(err)将调用os.Exit(1). 换句话说,它会在err != nil.


查看完整回答
反对 回复 2021-08-10
?
森林海

TA贡献2011条经验 获得超2个赞

找到了解决方案。刚刚删除了不需要的行以返回更新查询的响应,并且一切正常。


_, err := db.Query("UPDATE user_name_table SET user_id = ? WHERE user_name = ? ",   "abcd", "admin")

    // defer rows.Close()


查看完整回答
反对 回复 2021-08-10
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信