zoukankan      html  css  js  c++  java
  • golang操作mysql 报错:invalid memory address or nil pointer dereference

    #############################

    错误写法:

    var DB *sql.DB
    
    func init() {
        
        DB, err := sql.Open("mysql", "tmp:tmp@tcp(10.10.10.10:3306)/mysql")
        if err != nil {
            return
        }
        DB.SetMaxOpenConns(3000) // 设置最大连接数
        err = DB.Ping()          // 尝试与数据库建立连接
        if err != nil {
            fmt.Println("Failed to connect to mysql,err" + err.Error())
            os.Exit(1)
        }
    }
    解决办法:
    
    = 与 := 的区别
    
    =     就是单纯的赋值
    
    :=   具有声明变量的功能
    
    改前 用的 :=
    
    DB, err := sql.Open("mysql", dsn)
    
    改后 用 =
    
    var err error
    
    DB, err = sql.Open("mysql", dsn)

    正确写法:

    var DB *sql.DB
    
    func init() {
        var err error
        DB, err = sql.Open("mysql", "tmp:tmp@tcp(10.10.10.10:3306)/mysql")
        if err != nil {
            return
        }
        DB.SetMaxOpenConns(3000) // 设置最大连接数
        err = DB.Ping()          // 尝试与数据库建立连接
        if err != nil {
            fmt.Println("Failed to connect to mysql,err" + err.Error())
            os.Exit(1)
        }
    }

    ###########################

    igoodful@qq.com
  • 相关阅读:
    页面登陆系统--带文字验证码
    Django-form表单
    Ajax 异步局部刷新
    Django认证系统auth认证
    cookie与session
    使用lorem在HTML中生成随机文本
    request模块
    java——第五天-面向对象OOP
    java——第四天
    java——第三天
  • 原文地址:https://www.cnblogs.com/igoodful/p/14821421.html
Copyright © 2011-2022 走看看