问题描述
package main
import (
"database/sql"
"fmt"
"log"
"sync"
"time"
_ "github.com/go-sql-driver/MysqL"
)
func main() {
db,err := sql.Open("MysqL","SECRET")
if err != nil {
log.Println(err)
}
_,uerr := db.Exec("USE " + "try")
if uerr != nil {
log.Println(uerr)
}
defer db.Close()
w := new(sync.WaitGroup)
w.Add(100)
syn := func(text string,w *sync.WaitGroup) {
defer w.Done()
db.Exec("INSERT INTO test VALUES(?)",text)
fmt.Println(text)
}
for i := 0; i < 100; i++ {
msg := fmt.Sprintf("Content %d",i)
go syn(msg,w)
}
w.Wait()
var (
cn string
)
rows,er := db.Query("SELECT * FROM test")
if er != nil {
log.Println(er)
}
for rows.Next() {
err := rows.Scan(&cn)
if err != nil {
log.Println(err)
}
fmt.Println("-----",cn)
}
}
当我运行这段代码时,同步功能可以很好地运行100次。 但是循环之后,出现如下错误。
错误1046:未选择数据库紧急情况:运行时错误:内存无效 地址或nil指针取消引用[信号0xc0000005代码= 0x0 addr = 0x0 pc = 0x4dc067]
我的目标是使用goroutines插入MysqL数据库。 为什么会发生错误?和我该怎么办?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)