第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

共享數(shù)據(jù)庫全局處理程序的問題

共享數(shù)據(jù)庫全局處理程序的問題

Go
肥皂起泡泡 2021-09-27 15:39:57
我的代碼如下:package mainimport (  "database/sql"  "fmt"  _ "github.com/mattn/go-sqlite3"  "log")var db *sql.DBfunc main() {  fmt.Println("Starting test ...")  db, err := sql.Open("sqlite3", "./data.db")  checkErr(err)  err = db.Ping()  checkErr(err)  fmt.Println(getNames())}func checkErr(err error) {  if err != nil {    log.Fatal(err)  }}func getNames() []string {  query := `select name from places`  rows, err := db.Query(query)  checkErr(err)  defer rows.Close()  var names []string  for rows.Next() {    var name string    rows.Scan(&name)    names = append(names, name)  }  return names}我遇到了這個問題,但這種方法對我不起作用。我正在使用 sqlite3 進行存儲。我的目標很簡單。在所有函數(shù)之間共享 db 處理程序。構建和運行時出現(xiàn)以下錯誤。Starting test ...panic: runtime error: invalid memory address or nil pointer dereference[signal 0xb code=0x1 addr=0x0 pc=0x411fc6e]goroutine 1 [running]:database/sql.(*DB).conn(0x0, 0x0, 0x0, 0x0)    /usr/local/Cellar/go/1.4.2/libexec/src/database/sql/sql.go:634   +0x7aedatabase/sql.(*DB).query(0x0, 0x421cb10, 0x17, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0)    /usr/local/Cellar/go/1.4.2/libexec/src/database/sql/sql.go:933 +0x43database/sql.(*DB).Query(0x0, 0x421cb10, 0x17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)    /usr/local/Cellar/go/1.4.2/libexec/src/database/sql/sql.go:924 +0xa6main.getNames(0x0, 0x0, 0x0)    /Users/kdys/Code/go/src/test/main.go:32 +0x94main.main()    /Users/kdys/Code/go/src/test/main.go:21 +0x188goroutine 5 [chan receive]:database/sql.(*DB).connectionOpener(0xc20802e000)    /usr/local/Cellar/go/1.4.2/libexec/src/database/sql/sql.go:589 +0x4ccreated by database/sql.Open    /usr/local/Cellar/go/1.4.2/libexec/src/database/sql/sql.go:452 +0x31cgoroutine 17 [syscall, locked to thread]:runtime.goexit()    /usr/local/Cellar/go/1.4.2/libexec/src/runtime/asm_amd64.s:2232 +0x1我在這里做錯了什么?
查看完整描述

1 回答

?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

你creatng局部db內(nèi)變量main。當您調用 時getNames,它正在使用 global db,它仍然為零。



var err error

db, err = sql.Open("sqlite3", "./data.db")


查看完整回答
反對 回復 2021-09-27
  • 1 回答
  • 0 關注
  • 239 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號