初学golang,尝试写一个程序,但是在mysql操作时遇到了问题~ 看网上文章,推荐mysql直接创建一个db全局变量,然后连接一次,以后使用到直接用这个db,我按照这样的方法,然后进行操作,可是程序却一直崩溃,代码如下: ```go var db *sql.DB func put(str string) bool { // 执行到这里就崩溃 rows, err := db.Query("SELECT `id` FROM `user` WHERE `username`='"+str+"';") if err != nil{ panic(err) } defer rows } func main(){ var err error db, err = sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/dht?charset=utf8") if err != nil { panic(err) } defer db.Close() // 获取信息代码 for{ go func(str string) { ok := put(str) if !ok { fmt.Println("error") } }(str) time.Sleep(10 * time.Second) } } ``` 不知道是什么原因,一执行到查询,或者其他操作语句,程序就会崩溃,然后报错:panic: runtime error: invalid memory address or nil pointer dereference
有疑问加站长微信联系(非本文作者)
