我遇到了一個似乎無法解決的問題,可能是因為我對 GO 缺乏經驗。我有以下代碼在一臺服務器上工作,但不在另一臺服務器上。這是代碼:// Build out the connection string to the database, and then open the connection to the database.connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d", *server, *user, *password, *port)if *debug { fmt.Printf(" connString:%s\n", connString) }db, err = sql.Open("mssql", connString)if err != nil { log.Fatal("Open connection failed:", err.Error()) }err = db.Ping()if err != nil { fmt.Println("Cannot connect: ", err.Error()) return}rows, _ := db.Query( "SELECT Zip FROM Zip_Rural WHERE Zip = ?", ZipCode[0:5] )defer rows.Close()if !rows.Next() { acreageRequirement = .5}在讀取的行上,if !rows.Next()我收到以下錯誤:panic: runtime error: invalid memory address or nil pointer dereferencepanic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x20 pc=0x477918]同樣的代碼在另一臺服務器上運行得很好,在兩臺機器上運行 GO 1.4.2 版。我有一種感覺,我只是在這里某處有一些不好的語法,但不知道真正的問題是什么。db.Exec在同一個文件中調用工作正常,這讓我相信我的數據庫連接非常好,但由于某種原因db.Query沒有正確執行。
- 1 回答
- 0 關注
- 286 瀏覽
添加回答
舉報
0/150
提交
取消